In [ ]:
. ./nbs_header.ps1
. ./core.ps1
In [ ]:
{ pwsh ../apps/builder/build.ps1 } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
│ # DibParser (Polyglot)

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsec.dll"
#r 
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsecCS.dll"

── pwsh ────────────────────────────────────────────────────────────────────────
ls ~/.nuget/packages/argu

── [ 234.20ms - stdout ] ───────────────────────────────────────────────────────
│ 6.2.4
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif

── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FParsec
open SpiralFileSystem.Operators

── markdown ────────────────────────────────────────────────────────────────────
│ ## escapeCell (test)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline escapeCell input =
    input
    |> SpiralSm.split "\n"
    |> Array.map (function
        | line when line |> SpiralSm.starts_with "\\#!" || line |> 
SpiralSm.starts_with "\\#r" ->
            System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")
        | line -> line
    )
    |> SpiralSm.concat "\n"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

$"a{nl}\\#!magic{nl}b{nl}"
|> escapeCell
|> _assertEqual (
    $"a{nl}#!magic{nl}b{nl}"
)

── [ 44.53ms - stdout ] ────────────────────────────────────────────────────────
│ "a
│ #!magic
│ b
│ "
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## magicMarker

── fsharp ──────────────────────────────────────────────────────────────────────
let magicMarker : Parser<string, unit> = pstring "#!"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic"
|> run magicMarker
|> _assertEqual (
    Success ("#!", (), Position ("", 2, 1, 3))
)

── [ 27.06ms - stdout ] ────────────────────────────────────────────────────────
│ Success: "#!"
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"##!magic"
|> run magicMarker
|> _assertEqual (
    Failure (
        $"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
        ParserError (
            Position ("", 0, 1, 1),
            (),
            ErrorMessageList (ExpectedString "#!")
        ),
        ()
    )
)

── [ 30.75ms - stdout ] ────────────────────────────────────────────────────────
│ Failure:
│ Error in Ln: 1 Col: 1
│ ##!magic
│ ^
│ Expecting: '#!'
│ 
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## magicCommand

── fsharp ──────────────────────────────────────────────────────────────────────
let magicCommand =
    magicMarker
    >>. manyTill anyChar newline
    |>> (System.String.Concat >> SpiralSm.trim)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic

a"
|> run magicCommand
|> _assertEqual (
    Success ("magic", (), Position ("", 8, 2, 1))
)

── [ 17.18ms - stdout ] ────────────────────────────────────────────────────────
│ Success: "magic"
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

" #!magic

a"
|> run magicCommand
|> _assertEqual (
    Failure (
        $"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",
        ParserError (
            Position ("", 0, 1, 1),
            (),
            ErrorMessageList (ExpectedString "#!")
        ),
        ()
    )
)

── [ 18.01ms - stdout ] ────────────────────────────────────────────────────────
│ Failure:
│ Error in Ln: 1 Col: 1
│  #!magic
│ ^
│ Expecting: '#!'
│ 
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## content

── fsharp ──────────────────────────────────────────────────────────────────────
let content =
    (newline >>. magicMarker) <|> (eof >>. preturn "")
    |> attempt
    |> lookAhead
    |> manyTill anyChar
    |>> (System.String.Concat >> SpiralSm.trim)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic


a


"
|> run content
|> _assertEqual (
    Success ("#!magic


a", (), Position ("", 14, 7, 1))
)

── [ 16.50ms - stdout ] ────────────────────────────────────────────────────────
│ Success: "#!magic
│ 
│ 
│ a"
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## Output

── fsharp ──────────────────────────────────────────────────────────────────────
type Output =
    | Fs
    | Md
    | Spi
    | Spir

── markdown ────────────────────────────────────────────────────────────────────
│ ## Magic

── fsharp ──────────────────────────────────────────────────────────────────────
type Magic =
    | Fsharp
    | Markdown
    | Spiral of Output
    | Magic of string

── markdown ────────────────────────────────────────────────────────────────────
│ ## kernelOutputs

── fsharp ──────────────────────────────────────────────────────────────────────
let inline kernelOutputs magic =
    match magic with
    | Fsharp -> [[ Fs ]]
    | Markdown -> [[ Md ]]
    | Spiral output -> [[ output ]]
    | _ -> [[]]

── markdown ────────────────────────────────────────────────────────────────────
│ ## Block

── fsharp ──────────────────────────────────────────────────────────────────────
type Block =
    {
        magic : Magic
        content : string
    }

── markdown ────────────────────────────────────────────────────────────────────
│ ## block

── fsharp ──────────────────────────────────────────────────────────────────────
let block =
    pipe2
        magicCommand
        content
        (fun magic content ->
            let magic, content =
                match magic with
                | "fsharp" -> Fsharp, content
                | "markdown" -> Markdown, content
                | "spiral" ->
                    let output = if content |> SpiralSm.contains "//// real\n" 
then Spir else Spi
                    let content =
                        if output = Spi
                        then content
                        else
                            content
                            |> SpiralSm.replace "//// real\n\n" ""
                            |> SpiralSm.replace "//// real\n" ""
                    Spiral output, content
                | magic -> magic |> Magic, content
            {
                magic = magic
                content = content
            })

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic


a


"
|> run block
|> _assertEqual (
    Success (
        { magic = Magic "magic"; content = "a" },
        (),
        Position ("", 14, 7, 1)
    )
)

── [ 27.53ms - stdout ] ────────────────────────────────────────────────────────
│ Success: { magic = Magic "magic"
│   content = "a" }
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## blocks

── fsharp ──────────────────────────────────────────────────────────────────────
let blocks =
    skipMany newline
    >>. sepEndBy block (skipMany1 newline)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test


"#!magic1

a

\#!magic2

b

"
|> escapeCell
|> run blocks
|> _assertEqual (
    Success (
        [[
            { magic = Magic "magic1"; content = "a" }
            { magic = Magic "magic2"; content = "b" }
        ]],
        (),
        Position ("", 26, 9, 1)
    )
)

── [ 41.85ms - stdout ] ────────────────────────────────────────────────────────
│ Success: [{ magic = Magic "magic1"
│    content = "a" }; { magic = Magic "magic2"
│                       content = "b" }]
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## formatBlock

── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlock output (block : Block) =
    match output, block with
    | output, { magic = Markdown; content = content } ->
        let markdownComment =
            match output with
            | Spi | Spir -> "/// "
            | Fs -> "/// "
            | _ -> ""
        content
        |> SpiralSm.split "\n"
        |> Array.map (SpiralSm.trim_end [[||]])
        |> Array.filter (SpiralSm.ends_with " (test)" >> not)
        |> Array.map (function
            | "" -> markdownComment
            | line -> System.Text.RegularExpressions.Regex.Replace (line, 
"^\\s*", $"$&{markdownComment}")
        )
        |> SpiralSm.concat "\n"
    | Fs, { magic = Fsharp; content = content } ->
        let trimmedContent = content |> SpiralSm.trim
        if trimmedContent |> SpiralSm.contains "//// test\n"
            || trimmedContent |> SpiralSm.contains "//// ignore\n"
        then ""
        else
            content
            |> SpiralSm.split "\n"
            |> Array.filter (SpiralSm.trim_start [[||]] >> SpiralSm.starts_with 
"#r" >> not)
            |> SpiralSm.concat "\n"
    | (Spi | Spir), { magic = Spiral output'; content = content } when output' =
output ->
        let trimmedContent = content |> SpiralSm.trim
        if trimmedContent |> SpiralSm.contains "//// test\n"
            || trimmedContent |> SpiralSm.contains "//// ignore\n"
        then ""
        else content
    | _ -> ""

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!markdown


a

    b

c


\#!markdown


c


\#!fsharp


let a = 1"
|> escapeCell
|> run block
|> function
    | Success (block, _, _) -> formatBlock Fs block
    | Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
/// 
    /// b
/// 
/// c"

── [ 39.79ms - stdout ] ────────────────────────────────────────────────────────
│ "/// a
│ /// 
│     /// b
│ /// 
│ /// c"
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## formatBlocks

── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlocks output blocks =
    blocks
    |> List.map (fun block ->
        block, formatBlock output block
    )
    |> List.filter (snd >> (<>) "")
    |> fun list ->
        (list, (None, [[]]))
        ||> List.foldBack (fun (block, content) (lastMagic, acc) ->
            let lineBreak =
                if block.magic = Markdown && lastMagic <> Some Markdown && 
lastMagic <> None
                then ""
                else "\n"
            Some block.magic, $"{content}{lineBreak}" :: acc
        )
    |> snd
    |> SpiralSm.concat "\n"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!markdown


a

b


\#!markdown


c


\#!fsharp


let a = 1

\#!markdown

d (test)

\#!fsharp

//// test

let a = 2

\#!markdown

e

\#!fsharp

let a = 3"
|> escapeCell
|> run blocks
|> function
    | Success (blocks, _, _) -> formatBlocks Fs blocks
    | Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
/// 
/// b

/// c
let a = 1

/// e
let a = 3
"

── [ 48.19ms - stdout ] ────────────────────────────────────────────────────────
│ "/// a
│ /// 
│ /// b
│ 
│ /// c
│ let a = 1
│ 
│ /// e
│ let a = 3
│ "
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## parse

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parse output input =
    match run blocks input with
    | Success (blocks, _, _) ->
        let blocks =
            blocks
            |> List.filter (fun block ->
                block.magic |> kernelOutputs |> List.contains output || 
block.magic = Markdown
            )

        match blocks with
        | { magic = Markdown; content = content } :: _
            when output = Fs
            && content |> SpiralSm.starts_with "# "
            && content |> SpiralSm.ends_with ")"
            ->
            let inline indentBlock (block : Block) =
                { block with
                    content =
                        block.content
                        |> SpiralSm.split "\n"
                        |> Array.fold
                            (fun (lines, isMultiline) line ->
                                let trimmedLine = line |> SpiralSm.trim
                                if trimmedLine = ""
                                then "" :: lines, isMultiline
                                else
                                    let inline singleQuoteLine () =
                                        trimmedLine |> Seq.sumBy ((=) '"' >> 
System.Convert.ToInt32) = 1
                                        && trimmedLine |> SpiralSm.contains 
@"'""'" |> not
                                        && trimmedLine |> SpiralSm.ends_with "{"
|> not
                                        && trimmedLine |> SpiralSm.ends_with 
"{|" |> not
                                        && trimmedLine |> SpiralSm.starts_with 
"}" |> not
                                        && trimmedLine |> SpiralSm.starts_with 
"|}" |> not

                                    match isMultiline, trimmedLine |> 
SpiralSm.split_string [[| $"{q}{q}{q}" |]] with
                                    | false, [[| _; _ |]] ->
                                        $"    {line}" :: lines, true

                                    | true, [[| _; _ |]] ->
                                        line :: lines, false

                                    | false, _ when singleQuoteLine () ->
                                        $"    {line}" :: lines, true

                                    | false, _ when line |> SpiralSm.starts_with
"#" && block.magic = Fsharp ->
                                        line :: lines, false

                                    | false, _ ->
                                        $"    {line}" :: lines, false

                                    | true, _ when singleQuoteLine () && line |>
SpiralSm.starts_with "    " ->
                                        $"    {line}" :: lines, false

                                    | true, _ when singleQuoteLine () ->
                                        line :: lines, false

                                    | true, _ ->
                                        line :: lines, true
                            )
                            ([[]], false)
                        |> fst
                        |> List.rev
                        |> SpiralSm.concat "\n"
                }

            let moduleName, namespaceName =
                System.Text.RegularExpressions.Regex.Match (content, @"# (.*) 
\((.*)\)$")
                |> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value

            let moduleBlock =
                {
                    magic = Fsharp
                    content =
                        $"#if !INTERACTIVE
namespace {namespaceName}
#endif

module {moduleName} ="
                }

            blocks
            |> List.indexed
            |> List.fold
                (fun blocks (index, block) ->
                    match index with
                    | 0 -> blocks
                    | 1 -> indentBlock block :: moduleBlock :: blocks
                    | _ -> indentBlock block :: blocks
                )
                [[]]
            |> List.rev
        | _ -> blocks
        |> Result.Ok
    | Failure (errorMsg, _, _) -> Result.Error errorMsg

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let example1 =
    $"""#!meta

{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}

\#!markdown

# TestModule (TestNamespace)

\#!fsharp

\#!import file.dib

\#!fsharp

\#r "nuget:Expecto"

\#!markdown

## ParserLibrary

\#!fsharp

open System

\#!markdown

## x (test)

\#!fsharp

//// ignore

let x = 1

\#!spiral

//// test

inl x = 1i32

\#!spiral

//// real

inl x = 2i32

\#!spiral

inl x = 3i32

\#!markdown

### TextInput

\#!fsharp

let str1 = "abc
def"

let str2 =
    "abc\
def"

let str3 =
    $"1{{
        1
    }}1"

let str4 =
    $"1{{({{|
        a = 1
    |}}).a}}1"

let str5 =
    "abc \
        def"

let x =
    match '"' with
    | '"' -> true
    | _ -> false

let long1 = {q}{q}{q}a{q}{q}{q}

let long2 =
    {q}{q}{q}
a
{q}{q}{q}

\#!fsharp

type Position =
    {{
#if INTERACTIVE
        line : string
#else
        line : int
#endif
        column : int
    }}"""
    |> escapeCell

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Fs
|> Result.toOption
|> Option.get
|> (formatBlocks Fs)
|> _assertEqual $"""#if !INTERACTIVE
namespace TestNamespace
#endif

module TestModule =

    /// ## ParserLibrary
    open System

    /// ### TextInput
    let str1 = "abc
def"

    let str2 =
        "abc\
def"

    let str3 =
        $"1{{
            1
        }}1"

    let str4 =
        $"1{{({{|
            a = 1
        |}}).a}}1"

    let str5 =
        "abc \
            def"

    let x =
        match '"' with
        | '"' -> true
        | _ -> false

    let long1 = {q}{q}{q}a{q}{q}{q}

    let long2 =
        {q}{q}{q}
a
{q}{q}{q}

    type Position =
        {{
#if INTERACTIVE
            line : string
#else
            line : int
#endif
            column : int
        }}
"""

── [ 137.92ms - stdout ] ───────────────────────────────────────────────────────
│ "#if !INTERACTIVE
│ namespace TestNamespace
│ #endif
│ 
│ module TestModule =
│ 
│     /// ## ParserLibrary
│     open System
│ 
│     /// ### TextInput
│     let str1 = "abc
│ def"
│ 
│     let str2 =
│         "abc\
│ def"
│ 
│     let str3 =
│         $"1{
│             1
│         }1"
│ 
│     let str4 =
│         $"1{({|
│             a = 1
│         |}).a}1"
│ 
│     let str5 =
│         "abc \
│             def"
│ 
│     let x =
│         match '"' with
│         | '"' -> true
│         | _ -> false
│ 
│     let long1 = """a"""
│ 
│     let long2 =
│         """
│ a
│ """
│ 
│     type Position =
│         {
│ #if INTERACTIVE
│             line : string
│ #else
│             line : int
│ #endif
│             column : int
│         }
│ "
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Md
|> Result.toOption
|> Option.get
|> (formatBlocks Md)
|> _assertEqual "# TestModule (TestNamespace)

## ParserLibrary

### TextInput
"

── [ 111.96ms - stdout ] ───────────────────────────────────────────────────────
│ "# TestModule (TestNamespace)
│ 
│ ## ParserLibrary
│ 
│ ### TextInput
│ "
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Spi
|> Result.toOption
|> Option.get
|> (formatBlocks Spi)
|> _assertEqual "/// # TestModule (TestNamespace)

/// ## ParserLibrary
inl x = 3i32

/// ### TextInput
"

── [ 113.71ms - stdout ] ───────────────────────────────────────────────────────
│ "/// # TestModule (TestNamespace)
│ 
│ /// ## ParserLibrary
│ inl x = 3i32
│ 
│ /// ### TextInput
│ "
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Spir
|> Result.toOption
|> Option.get
|> (formatBlocks Spir)
|> _assertEqual "/// # TestModule (TestNamespace)

/// ## ParserLibrary
inl x = 2i32

/// ### TextInput
"

── [ 114.88ms - stdout ] ───────────────────────────────────────────────────────
│ "/// # TestModule (TestNamespace)
│ 
│ /// ## ParserLibrary
│ inl x = 2i32
│ 
│ /// ### TextInput
│ "
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## parseDibCode

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseDibCode output file = async {
    trace Debug
        (fun () -> "parseDibCode")
        (fun () -> $"output: {output} / file: {file} / {_locals ()}")
    let! input = file |> SpiralFileSystem.read_all_text_async
    match parse output input with
    | Result.Ok blocks -> return blocks |> formatBlocks output
    | Result.Error msg -> return failwith msg
}

── markdown ────────────────────────────────────────────────────────────────────
│ ## writeDibCode

── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeDibCode output path = async {
    trace Debug
        (fun () -> "writeDibCode")
        (fun () -> $"output: {output} / path: {path} / {_locals ()}")
    let! result = parseDibCode output path
    let pathDir = path |> System.IO.Path.GetDirectoryName
    let fileNameWithoutExt =
        match output, path |> System.IO.Path.GetFileNameWithoutExtension with
        | Spir, fileNameWithoutExt -> $"{fileNameWithoutExt}_real"
        | _, fileNameWithoutExt -> fileNameWithoutExt
    let outputPath = pathDir </> $"{fileNameWithoutExt}.{output |> string |> 
SpiralSm.to_lower}"
    do! result |> SpiralFileSystem.write_all_text_async outputPath
}

── markdown ────────────────────────────────────────────────────────────────────
│ ## Arguments

── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]
        File of file : string * Output

    interface Argu.IArgParserTemplate with
        member s.Usage =
            match s with
            | File _ -> nameof File

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Argu.ArgumentParser.Create<Arguments>().PrintUsage ()

── [ 65.53ms - return value ] ──────────────────────────────────────────────────
│ "USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir>
│ 
│ FILE:
│ 
│     <file> <fs|md|spi|spir>
│                           File
│ 
│ OPTIONS:
│ 
│     --help                display this list of options.
│ "
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## main

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let argsMap = args |> Runtime.parseArgsMap<Arguments>

    let files =
        argsMap.[[nameof Arguments.File]]
        |> List.map (function
            | Arguments.File (path, output) -> path, output
        )

    files
    |> List.map (fun (path, output) -> path |> writeDibCode output)
    |> Async.Parallel
    |> Async.Ignore
    |> Async.runWithTimeout 30000
    |> function
        | Some () -> 0
        | None -> 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let args =
    System.Environment.GetEnvironmentVariable "ARGS"
    |> SpiralRuntime.split_args
    |> Result.toArray
    |> Array.collect id

match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"

── [ 121.06ms - return value ] ─────────────────────────────────────────────────
│ <div class="dni-plaintext"><pre>0
│ </pre></div><style>
│ .dni-code-hint {
│     font-style: italic;
│     overflow: hidden;
│     white-space: nowrap;
│ }
│ .dni-treeview {
│     white-space: nowrap;
│ }
│ .dni-treeview td {
│     vertical-align: top;
│     text-align: start;
│ }
│ details.dni-treeview {
│     padding-left: 1em;
│ }
│ table td {
│     text-align: start;
│ }
│ table tr { 
│     vertical-align: top; 
│     margin: 0em 0px;
│ }
│ table tr td pre 
│ { 
│     vertical-align: top !important; 
│     margin: 0em 0px !important;
│ } 
│ table th {
│     text-align: start;
│ }
│ </style>

── [ 121.93ms - stdout ] ───────────────────────────────────────────────────────
│ 00:00:03 d #1 writeDibCode / output: Fs / path: 
Builder.dib
│ 00:00:03 d #2 parseDibCode / output: Fs / file: 
Builder.dib
│ 
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Builder.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # Builder (Polyglot)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> dard2.1/FSharp.Control.AsyncSeq.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> 0/System.Reactive.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> netstandard2.0/System.Reactive.Linq.dll"
> #r 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if !INTERACTIVE
> open Lib
> #endif
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Common
> open SpiralFileSystem.Operators
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## buildProject
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline buildProject runtime outputDir path = async {
>     let fullPath = path |> System.IO.Path.GetFullPath
>     let fileDir = fullPath |> System.IO.Path.GetDirectoryName
>     let extension = fullPath |> System.IO.Path.GetExtension
> 
>     trace Debug
>         (fun () -> "buildProject")
>         (fun () -> $"fullPath: {fullPath} / {_locals ()}")
> 
>     match extension with
>     | ".fsproj" -> ()
>     | _ -> failwith "Invalid project file"
> 
>     let runtimes =
>         runtime
>         |> Option.map List.singleton
>         |> Option.defaultValue [[ "linux-x64"; "win-x64" ]]
> 
>     let outputDir = outputDir |> Option.defaultValue "dist"
> 
>     return!
>         runtimes
>         |> List.map (fun runtime -> async {
>             let command = $@"dotnet publish ""{path}"" --configuration Release 
> --output ""{outputDir}"" --runtime {runtime}"
>             let! exitCode, _result =
>                 SpiralRuntime.execution_options (fun x ->
>                     { x with
>                         l0 = command
>                         l6 = Some fileDir
>                     }
>                 )
>                 |> SpiralRuntime.execute_with_options_async
>             return exitCode
>         })
>         |> Async.Sequential
>         |> Async.map Array.sum
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## persistCodeProject
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline persistCodeProject packages modules name hash code = async {
>     trace Debug
>         (fun () -> "persistCodeProject")
>         (fun () -> $"packages: {packages} / modules: {modules} / name: {name} / 
> hash: {hash} / code.Length: {code |> String.length} / {_locals ()}")
> 
>     let workspaceRoot = SpiralFileSystem.get_workspace_root ()
> 
>     let targetDir =
>         let targetDir = workspaceRoot </> "target/Builder" </> name
>         match hash with
>         | Some hash -> targetDir </> "packages" </> hash
>         | None -> targetDir
>     targetDir |> System.IO.Directory.CreateDirectory |> ignore
> 
>     let filePath = targetDir </> $"{name}.fs" |> System.IO.Path.GetFullPath
>     do! code |> SpiralFileSystem.write_all_text_exists filePath
> 
>     let modulesCode =
>         modules
>         |> List.map (fun path -> $"""<Compile Include="{workspaceRoot </> path}"
> />""")
>         |> SpiralSm.concat "\n        "
> 
>     let fsprojPath = targetDir </> $"{name}.fsproj"
>     let fsprojCode = $"""<Project Sdk="Microsoft.NET.Sdk">
>     <PropertyGroup>
>         <TargetFramework>net9.0</TargetFramework>
>         <LangVersion>preview</LangVersion>
>         <RollForward>Major</RollForward>
>         <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
>         <PublishAot>false</PublishAot>
>         <PublishTrimmed>false</PublishTrimmed>
>         <PublishSingleFile>true</PublishSingleFile>
>         <SelfContained>true</SelfContained>
>         <Version>0.0.1-alpha.1</Version>
>         <OutputType>Exe</OutputType>
>     </PropertyGroup>
> 
>     <PropertyGroup Condition="$([[MSBuild]]::IsOSPlatform('FreeBSD'))">
>         <DefineConstants>_FREEBSD</DefineConstants>
>     </PropertyGroup>
> 
>     <PropertyGroup Condition="$([[MSBuild]]::IsOSPlatform('Linux'))">
>         <DefineConstants>_LINUX</DefineConstants>
>     </PropertyGroup>
> 
>     <PropertyGroup Condition="$([[MSBuild]]::IsOSPlatform('OSX'))">
>         <DefineConstants>_OSX</DefineConstants>
>     </PropertyGroup>
> 
>     <PropertyGroup Condition="$([[MSBuild]]::IsOSPlatform('Windows'))">
>         <DefineConstants>_WINDOWS</DefineConstants>
>     </PropertyGroup>
> 
>     <ItemGroup>
>         {modulesCode}
>         <Compile Include="{filePath}" />
>     </ItemGroup>
> 
>     <Import Project="{workspaceRoot}/.paket/Paket.Restore.targets" />
> </Project>
> """
>     do! fsprojCode |> SpiralFileSystem.write_all_text_exists fsprojPath
> 
>     let paketReferencesPath = targetDir </> "paket.references"
>     let paketReferencesCode =
>         "FSharp.Core" :: packages
>         |> SpiralSm.concat "\n"
>     do! paketReferencesCode |> SpiralFileSystem.write_all_text_exists 
> paketReferencesPath
> 
>     return fsprojPath
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## buildCode
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline buildCode runtime packages modules outputDir name code = async {
>     let! fsprojPath = code |> persistCodeProject packages modules name None
>     let! exitCode = fsprojPath |> buildProject runtime outputDir
>     if exitCode <> 0 then
>         let! fsprojText = fsprojPath |> SpiralFileSystem.read_all_text_async
>         trace Critical
>             (fun () -> "buildCode")
>             (fun () -> $"code: {code |> SpiralSm.ellipsis_end 400} / fsprojText:
> {fsprojText} / {_locals ()}")
>     return exitCode
> }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "1 + 1 |> ignore"
> |> buildCode None [[]] [[]] None "test1"
> |> Async.runWithTimeout 180000
> |> _assertEqual (Some 0)
> 
> ── [ 9.08s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:02 d #1 persistCodeProject / packages: [] / 
> modules: [] / name: test1 / hash:  / code.Length: 15
> │ 00:00:02 d #2 buildProject / fullPath: 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj
> │ 00:00:05 d #1 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj" 
> --configuration Release --output "dist" --runtime linux-x64"; options = { 
> command = dotnet publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj" 
> --configuration Release --output "dist" --runtime linux-x64; cancellation_token 
> = None; environment_variables = [||]; on_line = None; stdin = None; trace = 
> true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot/target/Builder/test1" } }
> │ 00:00:05 v #2 >   Determining projects to restore...
> │ 00:00:06 v #3 >   Paket version 
> 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
> │ 00:00:06 v #4 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:06 v #5 >   Total time taken: 0 milliseconds
> │ 00:00:06 v #6 >   Paket version 
> 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
> │ 00:00:07 v #7 >   Restoring 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj
> │ 00:00:07 v #8 >   Starting restore process.
> │ 00:00:07 v #9 >   Total time taken: 0 milliseconds
> │ 00:00:07 v #10 >   Restored 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj (in 329 
> ms).
> │ 00:00:09 v #11 > 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fs(1,16): warning
> FS0988: Main module of program is empty: nothing will happen when it is run 
> [/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj]
> │ 00:00:09 v #12 >   test1 -> 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/bin/Release/net9.0/linu
> x-x64/test1.dll
> │ 00:00:10 v #13 >   test1 -> 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/dist
> │ 00:00:10 d #14 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 911 }
> │ 00:00:10 d #15 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj" 
> --configuration Release --output "dist" --runtime win-x64"; options = { command 
> = dotnet publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj" 
> --configuration Release --output "dist" --runtime win-x64; cancellation_token = 
> None; environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = Some 
> "/home/runner/work/polyglot/polyglot/target/Builder/test1" } }
> │ 00:00:11 v #16 >   Determining projects to restore...
> │ 00:00:11 v #17 >   Paket version 
> 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
> │ 00:00:11 v #18 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:11 v #19 >   Total time taken: 0 milliseconds
> │ 00:00:11 v #20 >   Restored 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj (in 265 
> ms).
> │ 00:00:13 v #21 > 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fs(1,16): warning
> FS0988: Main module of program is empty: nothing will happen when it is run 
> [/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj]
> │ 00:00:13 v #22 >   test1 -> 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/bin/Release/net9.0/win-
> x64/test1.dll
> │ 00:00:14 v #23 >   test1 -> 
> /home/runner/work/polyglot/polyglot/target/Builder/test1/dist
> │ 00:00:14 d #24 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 701 }
> │ Some 0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "1 + a |> ignore"
> |> buildCode None [[]] [[]] None "test2"
> |> Async.runWithTimeout 180000
> |> _assertEqual (Some 2)
> 
> ── [ 6.51s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:11 d #3 persistCodeProject / packages: [] / 
> modules: [] / name: test2 / hash:  / code.Length: 15
> │ 00:00:11 d #4 buildProject / fullPath: 
> /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj
> │ 00:00:14 d #25 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj" 
> --configuration Release --output "dist" --runtime linux-x64"; options = { 
> command = dotnet publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj" 
> --configuration Release --output "dist" --runtime linux-x64; cancellation_token 
> = None; environment_variables = [||]; on_line = None; stdin = None; trace = 
> true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot/target/Builder/test2" } }
> │ 00:00:14 v #26 >   Determining projects to restore...
> │ 00:00:15 v #27 >   Paket version 
> 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
> │ 00:00:15 v #28 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:15 v #29 >   Total time taken: 0 milliseconds
> │ 00:00:15 v #30 >   Paket version 
> 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
> │ 00:00:15 v #31 >   Restoring 
> /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj
> │ 00:00:15 v #32 >   Starting restore process.
> │ 00:00:15 v #33 >   Total time taken: 0 milliseconds
> │ 00:00:16 v #34 >   Restored 
> /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj (in 267 
> ms).
> │ 00:00:17 v #35 > 
> /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fs(1,5): error 
> FS0039: The value or constructor 'a' is not defined. 
> [/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj]
> │ 00:00:17 d #36 runtime.execute_with_options_async / { 
> exit_code = 1; output_length = 704 }
> │ 00:00:17 d #37 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj" 
> --configuration Release --output "dist" --runtime win-x64"; options = { command 
> = dotnet publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj" 
> --configuration Release --output "dist" --runtime win-x64; cancellation_token = 
> None; environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = Some 
> "/home/runner/work/polyglot/polyglot/target/Builder/test2" } }
> │ 00:00:18 v #38 >   Determining projects to restore...
> │ 00:00:18 v #39 >   Paket version 
> 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
> │ 00:00:18 v #40 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:18 v #41 >   Total time taken: 0 milliseconds
> │ 00:00:19 v #42 >   Restored 
> /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj (in 267 
> ms).
> │ 00:00:20 v #43 > 
> /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fs(1,5): error 
> FS0039: The value or constructor 'a' is not defined. 
> [/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj]
> │ 00:00:20 d #44 runtime.execute_with_options_async / { 
> exit_code = 1; output_length = 496 }
> │ 00:00:17 c #5 buildCode / code: 1 + a |> ignore / 
> fsprojText: <Project Sdk="Microsoft.NET.Sdk">
> │     <PropertyGroup>
> │         <TargetFramework>net9.0</TargetFramework>
> │         <LangVersion>preview</LangVersion>
> │         <RollForward>Major</RollForward>
> │         
> <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
> │         <PublishAot>false</PublishAot>
> │         <PublishTrimmed>false</PublishTrimmed>
> │         <PublishSingleFile>true</PublishSingleFile>
> │         <SelfContained>true</SelfContained>
> │         <Version>0.0.1-alpha.1</Version>
> │         <OutputType>Exe</OutputType>
> │     </PropertyGroup>
> │ 
> │     <PropertyGroup 
> Condition="$([MSBuild]::IsOSPlatform('FreeBSD'))">
> │         <DefineConstants>_FREEBSD</DefineConstants>
> │     </PropertyGroup>
> │ 
> │     <PropertyGroup 
> Condition="$([MSBuild]::IsOSPlatform('Linux'))">
> │         <DefineConstants>_LINUX</DefineConstants>
> │     </PropertyGroup>
> │ 
> │     <PropertyGroup 
> Condition="$([MSBuild]::IsOSPlatform('OSX'))">
> │         <DefineConstants>_OSX</DefineConstants>
> │     </PropertyGroup>
> │ 
> │     <PropertyGroup 
> Condition="$([MSBuild]::IsOSPlatform('Windows'))">
> │         <DefineConstants>_WINDOWS</DefineConstants>
> │     </PropertyGroup>
> │ 
> │     <ItemGroup>
> │         
> │         <Compile 
> Include="/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fs" />
> │     </ItemGroup>
> │ 
> │     <Import 
> Project="/home/runner/work/polyglot/polyglot/.paket/Paket.Restore.targets" />
> │ </Project>
> │ 
> │ Some 2
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## readFile
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline readFile path = async {
>     let! code = path |> SpiralFileSystem.read_all_text_async
> 
>     let code = System.Text.RegularExpressions.Regex.Replace (
>         code,
>         @"( *)(let\s+main\s+.*?\s*=)",
>         fun m -> m.Groups.[[1]].Value + "[[<EntryPoint>]]\n" + 
> m.Groups.[[1]].Value + m.Groups.[[2]].Value
>     )
> 
>     let codeTrim = code |> SpiralSm.trim_end [[||]]
>     return
>         if codeTrim |> SpiralSm.ends_with "\n()"
>         then codeTrim |> SpiralSm.slice 0 ((codeTrim |> String.length) - 3)
>         else code
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## buildFile
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline buildFile runtime packages modules path = async {
>     let fullPath = path |> System.IO.Path.GetFullPath
>     let dir = fullPath |> System.IO.Path.GetDirectoryName
>     let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension
>     let! code = fullPath |> readFile
>     return! code |> buildCode runtime packages modules (dir </> "dist" |> Some) 
> name
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## persistFile
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline persistFile packages modules path = async {
>     let fullPath = path |> System.IO.Path.GetFullPath
>     let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension
>     let! code = fullPath |> readFile
>     return! code |> persistCodeProject packages modules name None
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Arguments
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> [[<RequireQualifiedAccess>]]
> type Arguments =
>     | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce>]] 
> Path of path : string
>     | [[<Argu.ArguAttributes.Unique>]] Packages of packages : string list
>     | [[<Argu.ArguAttributes.Unique>]] Modules of modules : string list
>     | [[<Argu.ArguAttributes.Unique>]] Runtime of runtime : string
>     | [[<Argu.ArguAttributes.Unique>]] Persist_Only
> 
>     interface Argu.IArgParserTemplate with
>         member s.Usage =
>             match s with
>             | Path _ -> nameof Path
>             | Packages _ -> nameof Packages
>             | Modules _ -> nameof Modules
>             | Runtime _ -> nameof Runtime
>             | Persist_Only -> nameof Persist_Only
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
> 
> ── [ 75.40ms - return value ] ──────────────────────────────────────────────────
> │ "USAGE: dotnet-repl [--help] [--packages [<packages>...]]
> │                    [--modules [<modules>...]] [--runtime 
> <runtime>]
> │                    [--persist-only] <path>
> │ 
> │ PATH:
> │ 
> │     <path>                Path
> │ 
> │ OPTIONS:
> │ 
> │     --packages [<packages>...]
> │                           Packages
> │     --modules [<modules>...]
> │                           Modules
> │     --runtime <runtime>   Runtime
> │     --persist-only        Persist_Only
> │     --help                display this list of options.
> │ "
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let main args =
>     let argsMap = args |> Runtime.parseArgsMap<Arguments>
> 
>     let path =
>         match argsMap.[[nameof Arguments.Path]] with
>         | [[ Arguments.Path path ]] -> Some path
>         | _ -> None
>         |> Option.get
> 
>     let packages =
>         match argsMap |> Map.tryFind (nameof Arguments.Packages) with
>         | Some [[ Arguments.Packages packages ]] -> packages
>         | _ -> [[]]
> 
>     let modules =
>         match argsMap |> Map.tryFind (nameof Arguments.Modules) with
>         | Some [[ Arguments.Modules modules ]] -> modules
>         | _ -> [[]]
> 
>     let runtime =
>         match argsMap |> Map.tryFind (nameof Arguments.Runtime) with
>         | Some [[ Arguments.Runtime runtime ]] -> Some runtime
>         | _ -> None
> 
>     let persistOnly = argsMap |> Map.containsKey (nameof Arguments.Persist_Only)
> 
>     if persistOnly
>     then path |> persistFile packages modules |> Async.map (fun _ -> 0)
>     else path |> buildFile runtime packages modules
>     |> Async.runWithTimeout (60000 * 60)
>     |> function
>         | Some exitCode -> exitCode
>         | None -> 1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let args =
>     System.Environment.GetEnvironmentVariable "ARGS"
>     |> SpiralRuntime.split_args
>     |> Result.toArray
>     |> Array.collect id
> 
> match args with
> | [[||]] -> 0
> | args -> if main args = 0 then 0 else failwith "main failed"
> 
> ── [ 12.35s - return value ] ───────────────────────────────────────────────────
> │ <div class="dni-plaintext"><pre>0
> │ </pre></div><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 12.35s - stdout ] ─────────────────────────────────────────────────────────
> │ 00:00:18 d #6 persistCodeProject / packages: [Argu; 
> FSharp.Control.AsyncSeq; System.Reactive.Linq] / modules: 
> [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; 
> deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Builder / hash:  / code.Length:
> 8210
> │ 00:00:18 d #7 buildProject / fullPath: 
> /home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj
> │ 00:00:21 d #45 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj" 
> --configuration Release --output 
> "/home/runner/work/polyglot/polyglot/apps/builder/dist" --runtime linux-x64"; 
> options = { command = dotnet publish 
> "/home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj" 
> --configuration Release --output 
> "/home/runner/work/polyglot/polyglot/apps/builder/dist" --runtime linux-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot/target/Builder/Builder" } }
> │ 00:00:21 v #46 >   Determining projects to restore...
> │ 00:00:22 v #47 >   Paket version 
> 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
> │ 00:00:22 v #48 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:22 v #49 >   Total time taken: 0 milliseconds
> │ 00:00:22 v #50 >   Paket version 
> 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
> │ 00:00:22 v #51 >   Restoring 
> /home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj
> │ 00:00:22 v #52 >   Starting restore process.
> │ 00:00:22 v #53 >   Total time taken: 0 milliseconds
> │ 00:00:23 v #54 >   Restored 
> /home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj (in 
> 287 ms).
> │ 00:00:33 v #55 >   Builder -> 
> /home/runner/work/polyglot/polyglot/target/Builder/Builder/bin/Release/net9.0/li
> nux-x64/Builder.dll
> │ 00:00:33 v #56 >   Builder -> 
> /home/runner/work/polyglot/polyglot/apps/builder/dist
> │ 00:00:33 d #57 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 690 }
> │ 
00:00:44 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 27151 }
00:00:44 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:45 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb to html
00:00:45 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:45 v #7 !   validate(nb)
00:00:45 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:45 v #9 !   return _pygments_highlight(
00:00:45 v #10 ! [NbConvertApp] Writing 335353 bytes to /home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.html
00:00:46 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 902 }
00:00:46 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 902 }
00:00:46 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:46 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:46 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:46 d #16 spiral.run / dib / { exit_code = 0; result_length = 28112 }
In [ ]:
{ pwsh ../deps/spiral/apps/spiral/build.ps1 -fast 1 -SkipFsx 1 } | Invoke-Block
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/apps/spiral
spiral/apps/spiral/build.ps1 / ScriptDir: /home/runner/work/polyglot/polyglot/deps/spiral/apps/spiral / ResolvedScriptDir: /home/runner/work/polyglot/spiral/apps/spiral
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral / hash:  / code.Length: 1448987
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/spiral
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/spiral
polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/deps/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target:  / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/deps/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/spiral / ProjectName: spiral / Language: rs / Runtime:  / root: /home/runner/work/polyglot/polyglot
Fable 5.0.0-alpha.7: F# to Rust compiler (status: alpha)

Thanks to the contributor! @scitesy
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target/Builder/spiral/spiral.fsproj...
Project and references (14 source files) parsed in 3194ms

Started Fable compilation...

Fable compilation finished in 13253ms

./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.rs
spiral/apps/spiral/build.ps1 / path: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/spiral.rs
warning: creating a shared reference to mutable static is discouraged
   --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:146:16
    |
146 |             if POOL.is_none() {
    |                ^^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
    = note: `#[warn(static_mut_refs)]` on by default

warning: creating a shared reference to mutable static is discouraged
   --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:151:13
    |
151 |             POOL.as_ref().unwrap()
    |             ^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
   --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:170:16
    |
170 |             if LOCKS.is_none() {
    |                ^^^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
   --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:174:13
    |
174 |             LOCKS.as_ref().unwrap()
    |             ^^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: `fable_library_rust` (lib) generated 4 warnings
   Compiling spiral v0.0.1 (/home/runner/work/polyglot/spiral/apps/spiral)
    Finished `release` profile [optimized] target(s) in 18.23s
In [ ]:
{ pwsh ../apps/parser/build.ps1 } | Invoke-Block
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "DibParser.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # DibParser (Polyglot)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> dard2.1/FSharp.Control.AsyncSeq.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> 0/System.Reactive.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> netstandard2.0/System.Reactive.Linq.dll"
> #r 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> #r 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> arsec.dll"
> #r 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> arsecCS.dll"
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> ls ~/.nuget/packages/argu
> 
> ── [ 231.30ms - stdout ] ───────────────────────────────────────────────────────
> │ 6.2.4
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if !INTERACTIVE
> open Lib
> #endif
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Common
> open FParsec
> open SpiralFileSystem.Operators
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## escapeCell (test)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let inline escapeCell input =
>     input
>     |> SpiralSm.split "\n"
>     |> Array.map (function
>         | line when line |> SpiralSm.starts_with "\\#!" || line |> 
> SpiralSm.starts_with "\\#r" ->
>             System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")
>         | line -> line
>     )
>     |> SpiralSm.concat "\n"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> $"a{nl}\\#!magic{nl}b{nl}"
> |> escapeCell
> |> _assertEqual (
>     $"a{nl}#!magic{nl}b{nl}"
> )
> 
> ── [ 44.69ms - stdout ] ────────────────────────────────────────────────────────
> │ "a
> │ #!magic
> │ b
> │ "
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## magicMarker
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let magicMarker : Parser<string, unit> = pstring "#!"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "#!magic"
> |> run magicMarker
> |> _assertEqual (
>     Success ("#!", (), Position ("", 2, 1, 3))
> )
> 
> ── [ 28.17ms - stdout ] ────────────────────────────────────────────────────────
> │ Success: "#!"
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "##!magic"
> |> run magicMarker
> |> _assertEqual (
>     Failure (
>         $"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
>         ParserError (
>             Position ("", 0, 1, 1),
>             (),
>             ErrorMessageList (ExpectedString "#!")
>         ),
>         ()
>     )
> )
> 
> ── [ 31.52ms - stdout ] ────────────────────────────────────────────────────────
> │ Failure:
> │ Error in Ln: 1 Col: 1
> │ ##!magic
> │ ^
> │ Expecting: '#!'
> │ 
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## magicCommand
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let magicCommand =
>     magicMarker
>     >>. manyTill anyChar newline
>     |>> (System.String.Concat >> SpiralSm.trim)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "#!magic
> 
> a"
> |> run magicCommand
> |> _assertEqual (
>     Success ("magic", (), Position ("", 8, 2, 1))
> )
> 
> ── [ 17.39ms - stdout ] ────────────────────────────────────────────────────────
> │ Success: "magic"
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> " #!magic
> 
> a"
> |> run magicCommand
> |> _assertEqual (
>     Failure (
>         $"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",
>         ParserError (
>             Position ("", 0, 1, 1),
>             (),
>             ErrorMessageList (ExpectedString "#!")
>         ),
>         ()
>     )
> )
> 
> ── [ 18.35ms - stdout ] ────────────────────────────────────────────────────────
> │ Failure:
> │ Error in Ln: 1 Col: 1
> │  #!magic
> │ ^
> │ Expecting: '#!'
> │ 
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## content
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let content =
>     (newline >>. magicMarker) <|> (eof >>. preturn "")
>     |> attempt
>     |> lookAhead
>     |> manyTill anyChar
>     |>> (System.String.Concat >> SpiralSm.trim)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "#!magic
> 
> 
> a
> 
> 
> "
> |> run content
> |> _assertEqual (
>     Success ("#!magic
> 
> 
> a", (), Position ("", 14, 7, 1))
> )
> 
> ── [ 16.86ms - stdout ] ────────────────────────────────────────────────────────
> │ Success: "#!magic
> │ 
> │ 
> │ a"
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Output
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Output =
>     | Fs
>     | Md
>     | Spi
>     | Spir
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Magic
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Magic =
>     | Fsharp
>     | Markdown
>     | Spiral of Output
>     | Magic of string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## kernelOutputs
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline kernelOutputs magic =
>     match magic with
>     | Fsharp -> [[ Fs ]]
>     | Markdown -> [[ Md ]]
>     | Spiral output -> [[ output ]]
>     | _ -> [[]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Block
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Block =
>     {
>         magic : Magic
>         content : string
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## block
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let block =
>     pipe2
>         magicCommand
>         content
>         (fun magic content ->
>             let magic, content =
>                 match magic with
>                 | "fsharp" -> Fsharp, content
>                 | "markdown" -> Markdown, content
>                 | "spiral" ->
>                     let output = if content |> SpiralSm.contains "//// real\n" 
> then Spir else Spi
>                     let content =
>                         if output = Spi
>                         then content
>                         else
>                             content
>                             |> SpiralSm.replace "//// real\n\n" ""
>                             |> SpiralSm.replace "//// real\n" ""
>                     Spiral output, content
>                 | magic -> magic |> Magic, content
>             {
>                 magic = magic
>                 content = content
>             })
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "#!magic
> 
> 
> a
> 
> 
> "
> |> run block
> |> _assertEqual (
>     Success (
>         { magic = Magic "magic"; content = "a" },
>         (),
>         Position ("", 14, 7, 1)
>     )
> )
> 
> ── [ 28.18ms - stdout ] ────────────────────────────────────────────────────────
> │ Success: { magic = Magic "magic"
> │   content = "a" }
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## blocks
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let blocks =
>     skipMany newline
>     >>. sepEndBy block (skipMany1 newline)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> 
> "#!magic1
> 
> a
> 
> \#!magic2
> 
> b
> 
> "
> |> escapeCell
> |> run blocks
> |> _assertEqual (
>     Success (
>         [[
>             { magic = Magic "magic1"; content = "a" }
>             { magic = Magic "magic2"; content = "b" }
>         ]],
>         (),
>         Position ("", 26, 9, 1)
>     )
> )
> 
> ── [ 42.74ms - stdout ] ────────────────────────────────────────────────────────
> │ Success: [{ magic = Magic "magic1"
> │    content = "a" }; { magic = Magic "magic2"
> │                       content = "b" }]
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## formatBlock
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline formatBlock output (block : Block) =
>     match output, block with
>     | output, { magic = Markdown; content = content } ->
>         let markdownComment =
>             match output with
>             | Spi | Spir -> "/// "
>             | Fs -> "/// "
>             | _ -> ""
>         content
>         |> SpiralSm.split "\n"
>         |> Array.map (SpiralSm.trim_end [[||]])
>         |> Array.filter (SpiralSm.ends_with " (test)" >> not)
>         |> Array.map (function
>             | "" -> markdownComment
>             | line -> System.Text.RegularExpressions.Regex.Replace (line, 
> "^\\s*", $"$&{markdownComment}")
>         )
>         |> SpiralSm.concat "\n"
>     | Fs, { magic = Fsharp; content = content } ->
>         let trimmedContent = content |> SpiralSm.trim
>         if trimmedContent |> SpiralSm.contains "//// test\n"
>             || trimmedContent |> SpiralSm.contains "//// ignore\n"
>         then ""
>         else
>             content
>             |> SpiralSm.split "\n"
>             |> Array.filter (SpiralSm.trim_start [[||]] >> SpiralSm.starts_with 
> "#r" >> not)
>             |> SpiralSm.concat "\n"
>     | (Spi | Spir), { magic = Spiral output'; content = content } when output' =
> output ->
>         let trimmedContent = content |> SpiralSm.trim
>         if trimmedContent |> SpiralSm.contains "//// test\n"
>             || trimmedContent |> SpiralSm.contains "//// ignore\n"
>         then ""
>         else content
>     | _ -> ""
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "#!markdown
> 
> 
> a
> 
>     b
> 
> c
> 
> 
> \#!markdown
> 
> 
> c
> 
> 
> \#!fsharp
> 
> 
> let a = 1"
> |> escapeCell
> |> run block
> |> function
>     | Success (block, _, _) -> formatBlock Fs block
>     | Failure (msg, _, _) -> failwith msg
> |> _assertEqual "/// a
> /// 
>     /// b
> /// 
> /// c"
> 
> ── [ 41.58ms - stdout ] ────────────────────────────────────────────────────────
> │ "/// a
> │ /// 
> │     /// b
> │ /// 
> │ /// c"
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## formatBlocks
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline formatBlocks output blocks =
>     blocks
>     |> List.map (fun block ->
>         block, formatBlock output block
>     )
>     |> List.filter (snd >> (<>) "")
>     |> fun list ->
>         (list, (None, [[]]))
>         ||> List.foldBack (fun (block, content) (lastMagic, acc) ->
>             let lineBreak =
>                 if block.magic = Markdown && lastMagic <> Some Markdown && 
> lastMagic <> None
>                 then ""
>                 else "\n"
>             Some block.magic, $"{content}{lineBreak}" :: acc
>         )
>     |> snd
>     |> SpiralSm.concat "\n"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> "#!markdown
> 
> 
> a
> 
> b
> 
> 
> \#!markdown
> 
> 
> c
> 
> 
> \#!fsharp
> 
> 
> let a = 1
> 
> \#!markdown
> 
> d (test)
> 
> \#!fsharp
> 
> //// test
> 
> let a = 2
> 
> \#!markdown
> 
> e
> 
> \#!fsharp
> 
> let a = 3"
> |> escapeCell
> |> run blocks
> |> function
>     | Success (blocks, _, _) -> formatBlocks Fs blocks
>     | Failure (msg, _, _) -> failwith msg
> |> _assertEqual "/// a
> /// 
> /// b
> 
> /// c
> let a = 1
> 
> /// e
> let a = 3
> "
> 
> ── [ 54.23ms - stdout ] ────────────────────────────────────────────────────────
> │ "/// a
> │ /// 
> │ /// b
> │ 
> │ /// c
> │ let a = 1
> │ 
> │ /// e
> │ let a = 3
> │ "
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## parse
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline parse output input =
>     match run blocks input with
>     | Success (blocks, _, _) ->
>         let blocks =
>             blocks
>             |> List.filter (fun block ->
>                 block.magic |> kernelOutputs |> List.contains output || 
> block.magic = Markdown
>             )
> 
>         match blocks with
>         | { magic = Markdown; content = content } :: _
>             when output = Fs
>             && content |> SpiralSm.starts_with "# "
>             && content |> SpiralSm.ends_with ")"
>             ->
>             let inline indentBlock (block : Block) =
>                 { block with
>                     content =
>                         block.content
>                         |> SpiralSm.split "\n"
>                         |> Array.fold
>                             (fun (lines, isMultiline) line ->
>                                 let trimmedLine = line |> SpiralSm.trim
>                                 if trimmedLine = ""
>                                 then "" :: lines, isMultiline
>                                 else
>                                     let inline singleQuoteLine () =
>                                         trimmedLine |> Seq.sumBy ((=) '"' >> 
> System.Convert.ToInt32) = 1
>                                         && trimmedLine |> SpiralSm.contains 
> @"'""'" |> not
>                                         && trimmedLine |> SpiralSm.ends_with "{"
> |> not
>                                         && trimmedLine |> SpiralSm.ends_with 
> "{|" |> not
>                                         && trimmedLine |> SpiralSm.starts_with 
> "}" |> not
>                                         && trimmedLine |> SpiralSm.starts_with 
> "|}" |> not
> 
>                                     match isMultiline, trimmedLine |> 
> SpiralSm.split_string [[| $"{q}{q}{q}" |]] with
>                                     | false, [[| _; _ |]] ->
>                                         $"    {line}" :: lines, true
> 
>                                     | true, [[| _; _ |]] ->
>                                         line :: lines, false
> 
>                                     | false, _ when singleQuoteLine () ->
>                                         $"    {line}" :: lines, true
> 
>                                     | false, _ when line |> SpiralSm.starts_with
> "#" && block.magic = Fsharp ->
>                                         line :: lines, false
> 
>                                     | false, _ ->
>                                         $"    {line}" :: lines, false
> 
>                                     | true, _ when singleQuoteLine () && line |>
> SpiralSm.starts_with "    " ->
>                                         $"    {line}" :: lines, false
> 
>                                     | true, _ when singleQuoteLine () ->
>                                         line :: lines, false
> 
>                                     | true, _ ->
>                                         line :: lines, true
>                             )
>                             ([[]], false)
>                         |> fst
>                         |> List.rev
>                         |> SpiralSm.concat "\n"
>                 }
> 
>             let moduleName, namespaceName =
>                 System.Text.RegularExpressions.Regex.Match (content, @"# (.*) 
> \((.*)\)$")
>                 |> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value
> 
>             let moduleBlock =
>                 {
>                     magic = Fsharp
>                     content =
>                         $"#if !INTERACTIVE
> namespace {namespaceName}
> #endif
> 
> module {moduleName} ="
>                 }
> 
>             blocks
>             |> List.indexed
>             |> List.fold
>                 (fun blocks (index, block) ->
>                     match index with
>                     | 0 -> blocks
>                     | 1 -> indentBlock block :: moduleBlock :: blocks
>                     | _ -> indentBlock block :: blocks
>                 )
>                 [[]]
>             |> List.rev
>         | _ -> blocks
>         |> Result.Ok
>     | Failure (errorMsg, _, _) -> Result.Error errorMsg
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let example1 =
>     $"""#!meta
> 
> {{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
> "fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}
> 
> \#!markdown
> 
> # TestModule (TestNamespace)
> 
> \#!fsharp
> 
> \#!import file.dib
> 
> \#!fsharp
> 
> \#r "nuget:Expecto"
> 
> \#!markdown
> 
> ## ParserLibrary
> 
> \#!fsharp
> 
> open System
> 
> \#!markdown
> 
> ## x (test)
> 
> \#!fsharp
> 
> //// ignore
> 
> let x = 1
> 
> \#!spiral
> 
> //// test
> 
> inl x = 1i32
> 
> \#!spiral
> 
> //// real
> 
> inl x = 2i32
> 
> \#!spiral
> 
> inl x = 3i32
> 
> \#!markdown
> 
> ### TextInput
> 
> \#!fsharp
> 
> let str1 = "abc
> def"
> 
> let str2 =
>     "abc\
> def"
> 
> let str3 =
>     $"1{{
>         1
>     }}1"
> 
> let str4 =
>     $"1{{({{|
>         a = 1
>     |}}).a}}1"
> 
> let str5 =
>     "abc \
>         def"
> 
> let x =
>     match '"' with
>     | '"' -> true
>     | _ -> false
> 
> let long1 = {q}{q}{q}a{q}{q}{q}
> 
> let long2 =
>     {q}{q}{q}
> a
> {q}{q}{q}
> 
> \#!fsharp
> 
> type Position =
>     {{
> #if INTERACTIVE
>         line : string
> #else
>         line : int
> #endif
>         column : int
>     }}"""
>     |> escapeCell
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> example1
> |> parse Fs
> |> Result.toOption
> |> Option.get
> |> (formatBlocks Fs)
> |> _assertEqual $"""#if !INTERACTIVE
> namespace TestNamespace
> #endif
> 
> module TestModule =
> 
>     /// ## ParserLibrary
>     open System
> 
>     /// ### TextInput
>     let str1 = "abc
> def"
> 
>     let str2 =
>         "abc\
> def"
> 
>     let str3 =
>         $"1{{
>             1
>         }}1"
> 
>     let str4 =
>         $"1{{({{|
>             a = 1
>         |}}).a}}1"
> 
>     let str5 =
>         "abc \
>             def"
> 
>     let x =
>         match '"' with
>         | '"' -> true
>         | _ -> false
> 
>     let long1 = {q}{q}{q}a{q}{q}{q}
> 
>     let long2 =
>         {q}{q}{q}
> a
> {q}{q}{q}
> 
>     type Position =
>         {{
> #if INTERACTIVE
>             line : string
> #else
>             line : int
> #endif
>             column : int
>         }}
> """
> 
> ── [ 147.75ms - stdout ] ───────────────────────────────────────────────────────
> │ "#if !INTERACTIVE
> │ namespace TestNamespace
> │ #endif
> │ 
> │ module TestModule =
> │ 
> │     /// ## ParserLibrary
> │     open System
> │ 
> │     /// ### TextInput
> │     let str1 = "abc
> │ def"
> │ 
> │     let str2 =
> │         "abc\
> │ def"
> │ 
> │     let str3 =
> │         $"1{
> │             1
> │         }1"
> │ 
> │     let str4 =
> │         $"1{({|
> │             a = 1
> │         |}).a}1"
> │ 
> │     let str5 =
> │         "abc \
> │             def"
> │ 
> │     let x =
> │         match '"' with
> │         | '"' -> true
> │         | _ -> false
> │ 
> │     let long1 = """a"""
> │ 
> │     let long2 =
> │         """
> │ a
> │ """
> │ 
> │     type Position =
> │         {
> │ #if INTERACTIVE
> │             line : string
> │ #else
> │             line : int
> │ #endif
> │             column : int
> │         }
> │ "
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> example1
> |> parse Md
> |> Result.toOption
> |> Option.get
> |> (formatBlocks Md)
> |> _assertEqual "# TestModule (TestNamespace)
> 
> ## ParserLibrary
> 
> ### TextInput
> "
> 
> ── [ 121.27ms - stdout ] ───────────────────────────────────────────────────────
> │ "# TestModule (TestNamespace)
> │ 
> │ ## ParserLibrary
> │ 
> │ ### TextInput
> │ "
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> example1
> |> parse Spi
> |> Result.toOption
> |> Option.get
> |> (formatBlocks Spi)
> |> _assertEqual "/// # TestModule (TestNamespace)
> 
> /// ## ParserLibrary
> inl x = 3i32
> 
> /// ### TextInput
> "
> 
> ── [ 124.76ms - stdout ] ───────────────────────────────────────────────────────
> │ "/// # TestModule (TestNamespace)
> │ 
> │ /// ## ParserLibrary
> │ inl x = 3i32
> │ 
> │ /// ### TextInput
> │ "
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> example1
> |> parse Spir
> |> Result.toOption
> |> Option.get
> |> (formatBlocks Spir)
> |> _assertEqual "/// # TestModule (TestNamespace)
> 
> /// ## ParserLibrary
> inl x = 2i32
> 
> /// ### TextInput
> "
> 
> ── [ 123.93ms - stdout ] ───────────────────────────────────────────────────────
> │ "/// # TestModule (TestNamespace)
> │ 
> │ /// ## ParserLibrary
> │ inl x = 2i32
> │ 
> │ /// ### TextInput
> │ "
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## parseDibCode
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline parseDibCode output file = async {
>     trace Debug
>         (fun () -> "parseDibCode")
>         (fun () -> $"output: {output} / file: {file} / {_locals ()}")
>     let! input = file |> SpiralFileSystem.read_all_text_async
>     match parse output input with
>     | Result.Ok blocks -> return blocks |> formatBlocks output
>     | Result.Error msg -> return failwith msg
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## writeDibCode
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline writeDibCode output path = async {
>     trace Debug
>         (fun () -> "writeDibCode")
>         (fun () -> $"output: {output} / path: {path} / {_locals ()}")
>     let! result = parseDibCode output path
>     let pathDir = path |> System.IO.Path.GetDirectoryName
>     let fileNameWithoutExt =
>         match output, path |> System.IO.Path.GetFileNameWithoutExtension with
>         | Spir, fileNameWithoutExt -> $"{fileNameWithoutExt}_real"
>         | _, fileNameWithoutExt -> fileNameWithoutExt
>     let outputPath = pathDir </> $"{fileNameWithoutExt}.{output |> string |> 
> SpiralSm.to_lower}"
>     do! result |> SpiralFileSystem.write_all_text_async outputPath
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Arguments
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> [[<RequireQualifiedAccess>]]
> type Arguments =
>     | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]
>         File of file : string * Output
> 
>     interface Argu.IArgParserTemplate with
>         member s.Usage =
>             match s with
>             | File _ -> nameof File
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
> 
> ── [ 65.75ms - return value ] ──────────────────────────────────────────────────
> │ "USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir>
> │ 
> │ FILE:
> │ 
> │     <file> <fs|md|spi|spir>
> │                           File
> │ 
> │ OPTIONS:
> │ 
> │     --help                display this list of options.
> │ "
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let main args =
>     let argsMap = args |> Runtime.parseArgsMap<Arguments>
> 
>     let files =
>         argsMap.[[nameof Arguments.File]]
>         |> List.map (function
>             | Arguments.File (path, output) -> path, output
>         )
> 
>     files
>     |> List.map (fun (path, output) -> path |> writeDibCode output)
>     |> Async.Parallel
>     |> Async.Ignore
>     |> Async.runWithTimeout 30000
>     |> function
>         | Some () -> 0
>         | None -> 1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let args =
>     System.Environment.GetEnvironmentVariable "ARGS"
>     |> SpiralRuntime.split_args
>     |> Result.toArray
>     |> Array.collect id
> 
> match args with
> | [[||]] -> 0
> | args -> if main args = 0 then 0 else failwith "main failed"
> 
> ── [ 123.70ms - return value ] ─────────────────────────────────────────────────
> │ <div class="dni-plaintext"><pre>0
> │ </pre></div><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 124.60ms - stdout ] ───────────────────────────────────────────────────────
> │ 00:00:03 d #1 writeDibCode / output: Fs / path: 
> DibParser.dib
> │ 00:00:03 d #2 parseDibCode / output: Fs / file: 
> DibParser.dib
> │ 
00:00:17 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 29860 }
00:00:17 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:18 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb to html
00:00:18 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:18 v #7 !   validate(nb)
00:00:18 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:18 v #9 !   return _pygments_highlight(
00:00:18 v #10 ! [NbConvertApp] Writing 377352 bytes to /home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.html
00:00:19 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 904 }
00:00:19 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 904 }
00:00:19 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:19 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:19 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:19 d #16 spiral.run / dib / { exit_code = 0; result_length = 30823 }
00:00:00 d #1 persistCodeProject / packages: [Argu; FParsec; FSharp.Control.AsyncSeq; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: DibParser / hash:  / code.Length: 10861
00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "/home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/parser/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/parser/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/DibParser" } }
00:00:00 v #2 >   Determining projects to restore...
00:00:01 v #3 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #4 >   The last full restore is still up to date. Nothing left to do.
00:00:01 v #5 >   Total time taken: 0 milliseconds
00:00:01 v #6 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #7 >   Restoring /home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj
00:00:01 v #8 >   Starting restore process.
00:00:01 v #9 >   Total time taken: 0 milliseconds
00:00:02 v #10 >   Restored /home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj (in 328 ms).
00:00:12 v #11 >   DibParser -> /home/runner/work/polyglot/polyglot/target/Builder/DibParser/bin/Release/net9.0/linux-x64/DibParser.dll
00:00:13 v #12 >   DibParser -> /home/runner/work/polyglot/polyglot/apps/parser/dist
00:00:13 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 705 }
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "JsonParser.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # JsonParser (Polyglot)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Common
> open Parser
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## JsonParser
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> (*
> // --------------------------------
> JSON spec from http://www.json.org/
> // --------------------------------
> 
> The JSON spec is available at [[json.org]](http://www.json.org/). I'll paraphase
> it here:
> 
> * A `value` can be a `string` or a `number` or a `bool` or `null` or an `object`
> or an `array`.
>   * These structures can be nested.
> * A `string` is a sequence of zero or more Unicode characters, wrapped in double
> quotes, using backslash escapes.
> * A `number` is very much like a C or Java number, except that the octal and 
> hexadecimal formats are not used.
> * A `boolean` is the literal `true` or `false`
> * A `null` is the literal `null`
> * An `object` is an unordered set of name/value pairs.
>   * An object begins with { (left brace) and ends with } (right brace).
>   * Each name is followed by : (colon) and the name/value pairs are separated by
> , (comma).
> * An `array` is an ordered collection of values.
>   * An array begins with [[ (left bracket) and ends with ]] (right bracket).
>   * Values are separated by , (comma).
> * Whitespace can be inserted between any pair of tokens.
> *)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let inline parserEqual (expected : ParseResult<'a>) (actual : ParseResult<'a * 
> Input>) =
>     match actual, expected with
>     | Success (_actual, _), Success _expected ->
>         printResult actual
>         _actual |> _assertEqual _expected
>     | Failure (l1, e1, p1), Failure (l2, e2, p2) when l1 = l2 && e1 = e2 && p1 =
> p2 ->
>         printResult actual
>     | _ ->
>         printfn $"Actual: {actual}"
>         printfn $"Expected: {expected}"
>         failwith "Parse failed"
>     actual
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### JValue
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type JValue =
>     | JString of string
>     | JNumber of float
>     | JBool   of bool
>     | JNull
>     | JObject of Map<string, JValue>
>     | JArray  of JValue list
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jValue, jValueRef = createParserForwardedToRef<JValue> ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jNull
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jNull =
>     pstring "null"
>     >>% JNull
>     <?> "null"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> jValueRef <|
>     choice
>         [[
>             jNull
>         ]]
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jValue "null"
> |> parserEqual (Success JNull)
> 
> ── [ 162.19ms - return value ] ─────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNull, { lines = [|&quot;null&quot;|]<br />
> position = { line = 0<br />                               column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNull, { lines = [|&quot;null&quot;|]<br />  
> position = { line = 0<br />               column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNull</code></span></summary><div><table><thead><tr>
> </tr></thead><tbody></tbody></table></div></details></td></tr><tr><td>Item2</td>
> <td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ 
> lines = [|&quot;null&quot;|]<br />  position = { line = 0<br />               
> column = 4 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ null 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 4 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>4
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 171.32ms - stdout ] ───────────────────────────────────────────────────────
> │ JNull
> │ JNull
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNull "nulp"
> |> parserEqual (
>     Failure (
>         "null",
>         "Unexpected 'p'",
>         { currentLine = "nulp"; line = 0; column = 3 }
>     )
> )
> 
> ── [ 45.91ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Failure (&quot;null&quot;, &quot;Unexpected 
> &#39;p&#39;&quot;, { currentLine = &quot;nulp&quot;<br />
> line = 0<br />                                     column = 3 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&quot;null&quot;
> │ </pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>&quot;Unexpected &#39;p&#39;&quot;
> │ </pre></div></td></tr><tr><td>Item3</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = 
> &quot;nulp&quot;<br />  line = 0<br />  column = 3 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> entLine</td><td><div class="dni-plaintext"><pre>&quot;nulp&quot;
> │ </pre></div></td></tr><tr><td>line</td><td><div 
> class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>3
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 47.20ms - stdout ] ────────────────────────────────────────────────────────
> │ Line:0 Col:3 Error parsing null
> │ nulp
> │    ^Unexpected 'p'
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jBool
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jBool =
>     let jtrue =
>         pstring "true"
>         >>% JBool true
>     let jfalse =
>         pstring "false"
>         >>% JBool false
> 
>     jtrue <|> jfalse
>     <?> "bool"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> jValueRef <|
>     choice
>         [[
>             jNull
>             jBool
>         ]]
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jBool "true"
> |> parserEqual (Success (JBool true))
> 
> ── [ 42.19ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JBool true, { lines = 
> [|&quot;true&quot;|]<br />                       position = { line = 0<br />
> column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JBool true, { lines = [|&quot;true&quot;|]<br />  
> position = { line = 0<br />               column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JBool 
> true</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> tem</td><td><div class="dni-plaintext"><pre>true
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;true&quot;|]<br />  position = { line = 0<br />               
> column = 4 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ true 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 4 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>4
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 43.92ms - stdout ] ────────────────────────────────────────────────────────
> │ JBool true
> │ JBool true
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jBool "false"
> |> parserEqual (Success (JBool false))
> 
> ── [ 30.52ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JBool false, { lines = 
> [|&quot;false&quot;|]<br />                        position = { line = 0<br />
> column = 5 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JBool false, { lines = [|&quot;false&quot;|]<br />
> position = { line = 0<br />               column = 5 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JBool 
> false</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item</td><td><div class="dni-plaintext"><pre>false
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;false&quot;|]<br />  position = { line = 0<br />               
> column = 5 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ false 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 5 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>5
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 32.28ms - stdout ] ────────────────────────────────────────────────────────
> │ JBool false
> │ JBool false
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jBool "truX"
> |> parserEqual (
>     Failure (
>         "bool",
>         "Unexpected 't'",
>         { currentLine = "truX"; line = 0; column = 0 }
>     )
> )
> 
> ── [ 25.60ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Failure (&quot;bool&quot;, &quot;Unexpected 
> &#39;t&#39;&quot;, { currentLine = &quot;truX&quot;<br />
> line = 0<br />                                     column = 0 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&quot;bool&quot;
> │ </pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>&quot;Unexpected &#39;t&#39;&quot;
> │ </pre></div></td></tr><tr><td>Item3</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = 
> &quot;truX&quot;<br />  line = 0<br />  column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> entLine</td><td><div class="dni-plaintext"><pre>&quot;truX&quot;
> │ </pre></div></td></tr><tr><td>line</td><td><div 
> class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 30.93ms - stdout ] ────────────────────────────────────────────────────────
> │ Line:0 Col:0 Error parsing bool
> │ truX
> │ ^Unexpected 't'
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jUnescapedChar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jUnescapedChar =
>     satisfy (fun ch -> ch <> '\\' && ch <> '\"') "char"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jUnescapedChar "a"
> |> parserEqual (Success 'a')
> 
> ── [ 43.11ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (&#39;a&#39;, { lines = [|&quot;a&quot;|]<br
> />                position = { line = 0<br />                             column
> = 1 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(a, { lines = [|&quot;a&quot;|]<br />  position = { 
> line = 0<br />               column = 1 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&#39;a&#39;
> │ </pre></div></td></tr><tr><td>Item2</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = 
> [|&quot;a&quot;|]<br />  position = { line = 0<br />               column = 1 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ a 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 1 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>1
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 44.74ms - stdout ] ────────────────────────────────────────────────────────
> │ 'a'
> │ 'a'
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jUnescapedChar "\\"
> |> parserEqual (
>     Failure (
>         "char",
>         "Unexpected '\\'",
>         { currentLine = "\\"; line = 0; column = 0 }
>     )
> )
> 
> ── [ 32.89ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Failure (&quot;char&quot;, &quot;Unexpected 
> &#39;\&#39;&quot;, { currentLine = &quot;\&quot;<br />
> line = 0<br />                                     column = 0 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&quot;char&quot;
> │ </pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>&quot;Unexpected &#39;\&#39;&quot;
> │ </pre></div></td></tr><tr><td>Item3</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = 
> &quot;\&quot;<br />  line = 0<br />  column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> entLine</td><td><div class="dni-plaintext"><pre>&quot;\&quot;
> │ </pre></div></td></tr><tr><td>line</td><td><div 
> class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 34.13ms - stdout ] ────────────────────────────────────────────────────────
> │ Line:0 Col:0 Error parsing char
> │ \
> │ ^Unexpected '\'
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jEscapedChar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jEscapedChar =
>     [[
>         ("\\\"",'\"')
>         ("\\\\",'\\')
>         ("\\/",'/')
>         ("\\b",'\b')
>         ("\\f",'\f')
>         ("\\n",'\n')
>         ("\\r",'\r')
>         ("\\t",'\t')
>     ]]
>     |> List.map (fun (toMatch, result) ->
>         pstring toMatch >>% result
>     )
>     |> choice
>     <?> "escaped char"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jEscapedChar "\\\\"
> |> parserEqual (Success '\\')
> 
> ── [ 29.62ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (&#39;\\&#39;, { lines = 
> [|&quot;\\&quot;|]<br />                 position = { line = 0<br />
> column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(\, { lines = [|&quot;\\&quot;|]<br />  position = {
> line = 0<br />               column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&#39;\\&#39;
> │ </pre></div></td></tr><tr><td>Item2</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = 
> [|&quot;\\&quot;|]<br />  position = { line = 0<br />               column = 2 }
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ \\ 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 2 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>2
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 31.75ms - stdout ] ────────────────────────────────────────────────────────
> │ '\\'
> │ '\\'
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jEscapedChar "\\t"
> |> parserEqual (Success '\t')
> 
> ── [ 40.10ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (&#39;\009&#39;, { lines = 
> [|&quot;\t&quot;|]<br />                   position = { line = 0<br />
> column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(	, { lines = [|&quot;\t&quot;|]<br />  position = { 
> line = 0<br />               column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&#39;\009&#39;
> │ </pre></div></td></tr><tr><td>Item2</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = 
> [|&quot;\t&quot;|]<br />  position = { line = 0<br />               column = 2 }
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ \t 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 2 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>2
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 41.86ms - stdout ] ────────────────────────────────────────────────────────
> │ '\009'
> │ '\009'
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jEscapedChar @"\\"
> |> parserEqual (Success '\\')
> 
> ── [ 27.50ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (&#39;\\&#39;, { lines = 
> [|&quot;\\&quot;|]<br />                 position = { line = 0<br />
> column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(\, { lines = [|&quot;\\&quot;|]<br />  position = {
> line = 0<br />               column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&#39;\\&#39;
> │ </pre></div></td></tr><tr><td>Item2</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = 
> [|&quot;\\&quot;|]<br />  position = { line = 0<br />               column = 2 }
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ \\ 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 2 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>2
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 29.05ms - stdout ] ────────────────────────────────────────────────────────
> │ '\\'
> │ '\\'
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jEscapedChar @"\n"
> |> parserEqual (Success '\n')
> 
> ── [ 27.15ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (&#39;\010&#39;, { lines = [|&quot;<br 
> />&quot;|]<br />                   position = { line = 0<br />
> column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(<br />, { lines = [|&quot;<br />&quot;|]<br />  
> position = { line = 0<br />               column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&#39;\010&#39;
> │ </pre></div></td></tr><tr><td>Item2</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = 
> [|&quot;<br />&quot;|]<br />  position = { line = 0<br />               column =
> 2 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ <br /> 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 2 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>2
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 28.71ms - stdout ] ────────────────────────────────────────────────────────
> │ '\010'
> │ '\010'
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jEscapedChar "a"
> |> parserEqual (
>     Failure (
>         "escaped char",
>         "Unexpected 'a'",
>         { currentLine = "a"; line = 0; column = 0 }
>     )
> )
> 
> ── [ 29.12ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Failure (&quot;escaped char&quot;, &quot;Unexpected 
> &#39;a&#39;&quot;, { currentLine = &quot;a&quot;<br />
> line = 0<br />                                             column = 0 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&quot;escaped char&quot;
> │ </pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>&quot;Unexpected &#39;a&#39;&quot;
> │ </pre></div></td></tr><tr><td>Item3</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = 
> &quot;a&quot;<br />  line = 0<br />  column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> entLine</td><td><div class="dni-plaintext"><pre>&quot;a&quot;
> │ </pre></div></td></tr><tr><td>line</td><td><div 
> class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 30.41ms - stdout ] ────────────────────────────────────────────────────────
> │ Line:0 Col:0 Error parsing escaped char
> │ a
> │ ^Unexpected 'a'
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jUnicodeChar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jUnicodeChar =
>     let backslash = pchar '\\'
>     let uChar = pchar 'u'
>     let hexdigit = anyOf ([[ '0' .. '9' ]] @ [[ 'A' .. 'F' ]] @ [[ 'a' .. 'f' 
> ]])
>     let fourHexDigits = hexdigit .>>. hexdigit .>>. hexdigit .>>. hexdigit
> 
>     let inline convertToChar (((h1, h2), h3), h4) =
>         let str = $"%c{h1}%c{h2}%c{h3}%c{h4}"
>         Int32.Parse (str, Globalization.NumberStyles.HexNumber) |> char
> 
>     backslash >>. uChar >>. fourHexDigits
>     |>> convertToChar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jUnicodeChar "\\u263A"
> |> parserEqual (Success '☺')
> 
> ── [ 36.27ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (&#39;☺&#39;, { lines = 
> [|&quot;\u263A&quot;|]<br />                position = { line = 0<br />
> column = 6 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(☺, { lines = [|&quot;\u263A&quot;|]<br />  position
> = { line = 0<br />               column = 6 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&#39;☺&#39;
> │ </pre></div></td></tr><tr><td>Item2</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = 
> [|&quot;\u263A&quot;|]<br />  position = { line = 0<br />               column =
> 6 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ \u263A 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 6 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>6
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 37.91ms - stdout ] ────────────────────────────────────────────────────────
> │ '☺'
> │ '☺'
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jString
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let quotedString =
>     let quote = pchar '\"' <?> "quote"
>     let jchar = jUnescapedChar <|> jEscapedChar <|> jUnicodeChar
> 
>     quote >>. manyChars jchar .>> quote
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jString =
>     quotedString
>     |>> JString
>     <?> "quoted string"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> jValueRef <|
>     choice
>         [[
>             jNull
>             jBool
>             jString
>         ]]
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jString "\"\""
> |> parserEqual (Success (JString ""))
> 
> ── [ 37.29ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JString &quot;&quot;, { lines = 
> [|&quot;&quot;&quot;&quot;|]<br />                       position = { line = 
> 0<br />                                    column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JString &quot;&quot;, { lines = 
> [|&quot;&quot;&quot;&quot;|]<br />  position = { line = 0<br />               
> column = 2 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JString 
> &quot;&quot;</code></span></summary><div><table><thead><tr></tr></thead><tbody><
> tr><td>Item</td><td><div class="dni-plaintext"><pre>&quot;&quot;
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;&quot;&quot;&quot;|]<br />  position = { line = 0<br />
> column = 2 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ &quot;&quot; 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 2 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>2
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 39.02ms - stdout ] ────────────────────────────────────────────────────────
> │ JString ""
> │ JString ""
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jString "\"a\""
> |> parserEqual (Success (JString "a"))
> 
> ── [ 29.34ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JString &quot;a&quot;, { lines = 
> [|&quot;&quot;a&quot;&quot;|]<br />                        position = { line = 
> 0<br />                                     column = 3 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JString &quot;a&quot;, { lines = 
> [|&quot;&quot;a&quot;&quot;|]<br />  position = { line = 0<br />               
> column = 3 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JString 
> &quot;a&quot;</code></span></summary><div><table><thead><tr></tr></thead><tbody>
> <tr><td>Item</td><td><div class="dni-plaintext"><pre>&quot;a&quot;
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;&quot;a&quot;&quot;|]<br />  position = { line = 0<br />
> column = 3 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ &quot;a&quot; 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 3 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>3
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 31.05ms - stdout ] ────────────────────────────────────────────────────────
> │ JString "a"
> │ JString "a"
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jString "\"ab\""
> |> parserEqual (Success (JString "ab"))
> 
> ── [ 32.03ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JString &quot;ab&quot;, { lines = 
> [|&quot;&quot;ab&quot;&quot;|]<br />                         position = { line =
> 0<br />                                      column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JString &quot;ab&quot;, { lines = 
> [|&quot;&quot;ab&quot;&quot;|]<br />  position = { line = 0<br />               
> column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JString 
> &quot;ab&quot;</code></span></summary><div><table><thead><tr></tr></thead><tbody
> ><tr><td>Item</td><td><div class="dni-plaintext"><pre>&quot;ab&quot;
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;&quot;ab&quot;&quot;|]<br />  position = { line = 0<br />
> column = 4 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ &quot;ab&quot; 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 4 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>4
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 33.74ms - stdout ] ────────────────────────────────────────────────────────
> │ JString "ab"
> │ JString "ab"
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jString "\"ab\\tde\""
> |> parserEqual (Success (JString "ab\tde"))
> 
> ── [ 29.14ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JString &quot;ab	de&quot;, { lines = 
> [|&quot;&quot;ab\tde&quot;&quot;|]<br />                            position = {
> line = 0<br />                                         column = 8 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JString &quot;ab	de&quot;, { lines = 
> [|&quot;&quot;ab\tde&quot;&quot;|]<br />  position = { line = 0<br />
> column = 8 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JString &quot;ab	
> de&quot;</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><
> td>Item</td><td><div class="dni-plaintext"><pre>&quot;ab	de&quot;
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;&quot;ab\tde&quot;&quot;|]<br />  position = { line = 0<br />
> column = 8 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ &quot;ab\tde&quot; 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 8 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>8
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 30.84ms - stdout ] ────────────────────────────────────────────────────────
> │ JString "ab	de"
> │ JString "ab	de"
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jString "\"ab\\u263Ade\""
> |> parserEqual (Success (JString "ab☺de"))
> 
> ── [ 29.70ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JString &quot;ab☺de&quot;, { lines = 
> [|&quot;&quot;ab\u263Ade&quot;&quot;|]<br />                            position
> = { line = 0<br />                                         column = 12 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JString &quot;ab☺de&quot;, { lines = 
> [|&quot;&quot;ab\u263Ade&quot;&quot;|]<br />  position = { line = 0<br />
> column = 12 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JString 
> &quot;ab☺de&quot;</code></span></summary><div><table><thead><tr></tr></thead><tb
> ody><tr><td>Item</td><td><div class="dni-plaintext"><pre>&quot;ab☺de&quot;
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;&quot;ab\u263Ade&quot;&quot;|]<br />  position = { line = 0<br 
> />               column = 12 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ &quot;ab\u263Ade&quot; 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 12 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>12
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 31.47ms - stdout ] ────────────────────────────────────────────────────────
> │ JString "ab☺de"
> │ JString "ab☺de"
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jNumber
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jNumber =
>     let optSign = opt (pchar '-')
> 
>     let zero = pstring "0"
> 
>     let digitOneNine =
>         satisfy (fun ch -> Char.IsDigit ch && ch <> '0') "1-9"
> 
>     let digit =
>         satisfy Char.IsDigit "digit"
> 
>     let point = pchar '.'
> 
>     let e = pchar 'e' <|> pchar 'E'
> 
>     let optPlusMinus = opt (pchar '-' <|> pchar '+')
> 
>     let nonZeroInt =
>         digitOneNine .>>. manyChars digit
>         |>> fun (first, rest) -> string first + rest
> 
>     let intPart = zero <|> nonZeroInt
> 
>     let fractionPart = point >>. manyChars1 digit
> 
>     let exponentPart = e >>. optPlusMinus .>>. manyChars1 digit
> 
>     let inline (|>?) opt f =
>         match opt with
>         | None -> ""
>         | Some x -> f x
> 
>     let inline convertToJNumber (((optSign, intPart), fractionPart), expPart) =
>         let signStr =
>             optSign
>             |>? string
> 
>         let fractionPartStr =
>             fractionPart
>             |>? (fun digits -> "." + digits)
> 
>         let expPartStr =
>             expPart
>             |>? fun (optSign, digits) ->
>                 let sign = optSign |>? string
>                 "e" + sign + digits
> 
>         (signStr + intPart + fractionPartStr + expPartStr)
>         |> float
>         |> JNumber
> 
>     optSign .>>. intPart .>>. opt fractionPart .>>. opt exponentPart
>     |>> convertToJNumber
>     <?> "number"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> jValueRef <|
>     choice
>         [[
>             jNull
>             jBool
>             jString
>             jNumber
>         ]]
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber "123"
> |> parserEqual (Success (JNumber 123.0))
> 
> ── [ 47.11ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber 123.0, { lines = 
> [|&quot;123&quot;|]<br />                          position = { line = 0<br />
> column = 3 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber 123.0, { lines = [|&quot;123&quot;|]<br />
> position = { line = 0<br />               column = 3 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item</td><td><div class="dni-plaintext"><pre>123.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;123&quot;|]<br />  position = { line = 0<br />               
> column = 3 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ 123 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 3 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>3
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 48.81ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber 123.0
> │ JNumber 123.0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber "-123"
> |> parserEqual (Success (JNumber -123.0))
> 
> ── [ 25.58ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber -123.0, { lines = 
> [|&quot;-123&quot;|]<br />                           position = { line = 0<br />
> column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber -123.0, { lines = [|&quot;-123&quot;|]<br 
> />  position = { line = 0<br />               column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td
> >Item</td><td><div class="dni-plaintext"><pre>-123.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;-123&quot;|]<br />  position = { line = 0<br />               
> column = 4 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ -123 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 4 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>4
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 27.22ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber -123.0
> │ JNumber -123.0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber "123.4"
> |> parserEqual (Success (JNumber 123.4))
> 
> ── [ 28.98ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber 123.4, { lines = 
> [|&quot;123.4&quot;|]<br />                          position = { line = 0<br />
> column = 5 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber 123.4, { lines = [|&quot;123.4&quot;|]<br 
> />  position = { line = 0<br />               column = 5 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 123.4</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item</td><td><div class="dni-plaintext"><pre>123.4
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;123.4&quot;|]<br />  position = { line = 0<br />               
> column = 5 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ 123.4 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 5 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>5
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 30.68ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber 123.4
> │ JNumber 123.4
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber "-123."
> |> parserEqual (Success (JNumber -123.0))
> 
> ── [ 24.30ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber -123.0, { lines = 
> [|&quot;-123.&quot;|]<br />                           position = { line = 0<br 
> />                                        column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber -123.0, { lines = [|&quot;-123.&quot;|]<br 
> />  position = { line = 0<br />               column = 4 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td
> >Item</td><td><div class="dni-plaintext"><pre>-123.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;-123.&quot;|]<br />  position = { line = 0<br />               
> column = 4 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ -123. 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 4 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>4
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 25.98ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber -123.0
> │ JNumber -123.0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber "00.1"
> |> parserEqual (Success (JNumber 0.0))
> 
> ── [ 24.43ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber 0.0, { lines = 
> [|&quot;00.1&quot;|]<br />                        position = { line = 0<br />
> column = 1 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber 0.0, { lines = [|&quot;00.1&quot;|]<br />  
> position = { line = 0<br />               column = 1 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 0.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> em</td><td><div class="dni-plaintext"><pre>0.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;00.1&quot;|]<br />  position = { line = 0<br />               
> column = 1 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ 00.1 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br />
> column = 1 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>1
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 26.05ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber 0.0
> │ JNumber 0.0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let jNumber_ = jNumber .>> spaces1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber_ "123"
> |> parserEqual (Success (JNumber 123.0))
> 
> ── [ 40.14ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber 123.0, { lines = 
> [|&quot;123&quot;|]<br />                          position = { line = 1<br />
> column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber 123.0, { lines = [|&quot;123&quot;|]<br />
> position = { line = 1<br />               column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item</td><td><div class="dni-plaintext"><pre>123.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;123&quot;|]<br />  position = { line = 1<br />               
> column = 0 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ 123 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>1
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 41.81ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber 123.0
> │ JNumber 123.0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber_ "-123"
> |> parserEqual (Success (JNumber -123.0))
> 
> ── [ 25.29ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber -123.0, { lines = 
> [|&quot;-123&quot;|]<br />                           position = { line = 1<br />
> column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber -123.0, { lines = [|&quot;-123&quot;|]<br 
> />  position = { line = 1<br />               column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td
> >Item</td><td><div class="dni-plaintext"><pre>-123.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;-123&quot;|]<br />  position = { line = 1<br />               
> column = 0 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ -123 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>1
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 27.05ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber -123.0
> │ JNumber -123.0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber_ "-123."
> |> parserEqual (
>     Failure (
>         "number andThen many1 whitespace",
>         "Unexpected '.'",
>         { currentLine = "-123."; line = 0; column = 4 }
>     )
> )
> 
> ── [ 23.47ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Failure<br />  (&quot;number andThen many1 
> whitespace&quot;, &quot;Unexpected &#39;.&#39;&quot;, { currentLine = 
> &quot;-123.&quot;<br />
> line = 0<br />                                                          column =
> 4 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&quot;number andThen many1 
> whitespace&quot;
> │ </pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>&quot;Unexpected &#39;.&#39;&quot;
> │ </pre></div></td></tr><tr><td>Item3</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = 
> &quot;-123.&quot;<br />  line = 0<br />  column = 4 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> entLine</td><td><div class="dni-plaintext"><pre>&quot;-123.&quot;
> │ </pre></div></td></tr><tr><td>line</td><td><div 
> class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>4
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 24.80ms - stdout ] ────────────────────────────────────────────────────────
> │ Line:0 Col:4 Error parsing number andThen many1 whitespace
> │ -123.
> │     ^Unexpected '.'
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber_ "123.4"
> |> parserEqual (Success (JNumber 123.4))
> 
> ── [ 28.31ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber 123.4, { lines = 
> [|&quot;123.4&quot;|]<br />                          position = { line = 1<br />
> column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber 123.4, { lines = [|&quot;123.4&quot;|]<br 
> />  position = { line = 1<br />               column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 123.4</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item</td><td><div class="dni-plaintext"><pre>123.4
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;123.4&quot;|]<br />  position = { line = 1<br />               
> column = 0 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ 123.4 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>1
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 29.95ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber 123.4
> │ JNumber 123.4
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber_ "00.4"
> |> parserEqual (
>     Failure (
>         "number andThen many1 whitespace",
>         "Unexpected '0'",
>         { currentLine = "00.4"; line = 0; column = 1 }
>     )
> )
> 
> ── [ 22.35ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Failure<br />  (&quot;number andThen many1 
> whitespace&quot;, &quot;Unexpected &#39;0&#39;&quot;, { currentLine = 
> &quot;00.4&quot;<br />                                                          
> line = 0<br />                                                          column =
> 1 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&quot;number andThen many1 
> whitespace&quot;
> │ </pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>&quot;Unexpected &#39;0&#39;&quot;
> │ </pre></div></td></tr><tr><td>Item3</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = 
> &quot;00.4&quot;<br />  line = 0<br />  column = 1 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> entLine</td><td><div class="dni-plaintext"><pre>&quot;00.4&quot;
> │ </pre></div></td></tr><tr><td>line</td><td><div 
> class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>1
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 23.59ms - stdout ] ────────────────────────────────────────────────────────
> │ Line:0 Col:1 Error parsing number andThen many1 whitespace
> │ 00.4
> │  ^Unexpected '0'
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber_ "123e4"
> |> parserEqual (Success (JNumber 1230000.0))
> 
> ── [ 28.68ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber 1230000.0, { lines = 
> [|&quot;123e4&quot;|]<br />                              position = { line = 
> 1<br />                                           column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber 1230000.0, { lines = 
> [|&quot;123e4&quot;|]<br />  position = { line = 1<br />               column = 
> 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 1230000.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>
> <td>Item</td><td><div class="dni-plaintext"><pre>1230000.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;123e4&quot;|]<br />  position = { line = 1<br />               
> column = 0 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ 123e4 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>1
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 33.87ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber 1230000.0
> │ JNumber 1230000.0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber_ "123.4e5"
> |> parserEqual (Success (JNumber 12340000.0))
> 
> ── [ 26.72ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber 12340000.0, { lines = 
> [|&quot;123.4e5&quot;|]<br />                               position = { line = 
> 1<br />                                            column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber 12340000.0, { lines = 
> [|&quot;123.4e5&quot;|]<br />  position = { line = 1<br />               column 
> = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 12340000.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr
> ><td>Item</td><td><div class="dni-plaintext"><pre>12340000.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;123.4e5&quot;|]<br />  position = { line = 1<br />
> column = 0 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ 123.4e5 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>1
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 28.44ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber 12340000.0
> │ JNumber 12340000.0
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jNumber_ "123.4e-5"
> |> parserEqual (Success (JNumber 0.001234))
> 
> ── [ 26.83ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JNumber 0.001234, { lines = 
> [|&quot;123.4e-5&quot;|]<br />                             position = { line = 
> 1<br />                                          column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JNumber 0.001234, { lines = 
> [|&quot;123.4e-5&quot;|]<br />  position = { line = 1<br />               column
> = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 0.001234</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><
> td>Item</td><td><div class="dni-plaintext"><pre>0.001234
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{
> lines = [|&quot;123.4e-5&quot;|]<br />  position = { line = 1<br />
> column = 0 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ 123.4e-5 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>1
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 28.48ms - stdout ] ────────────────────────────────────────────────────────
> │ JNumber 0.001234
> │ JNumber 0.001234
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jArray
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jArray =
>     let left = pchar '[[' .>> spaces
>     let right = pchar ']]' .>> spaces
>     let comma = pchar ',' .>> spaces
>     let value = jValue .>> spaces
> 
>     let values = sepBy value comma
> 
>     between left values right
>     |>> JArray
>     <?> "array"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> jValueRef <|
>     choice
>         [[
>             jNull
>             jBool
>             jString
>             jNumber
>             jArray
>         ]]
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jArray "[[ 1, 2 ]]"
> |> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0 ]]))
> 
> ── [ 59.04ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success (JArray [JNumber 1.0; JNumber 2.0], { lines 
> = [|&quot;[ 1, 2 ]&quot;|]<br />                                              
> position = { line = 1<br />
> column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JArray [JNumber 1.0; JNumber 2.0], { lines = 
> [|&quot;[ 1, 2 ]&quot;|]<br />  position = { line = 1<br />               column
> = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JArray [JNumber 1.0; JNumber 
> 2.0]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> tem</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><t
> body><tr><td>0</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 1.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> em</td><td><div class="dni-plaintext"><pre>1.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>1</td><t
> d><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> 2.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> em</td><td><div class="dni-plaintext"><pre>2.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </td></tr></tbody></table></div></details></td></tr><tr><td>Item2</td><td><detai
> ls class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = 
> [|&quot;[ 1, 2 ]&quot;|]<br />  position = { line = 1<br />               column
> = 0 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ [ 1, 2 ] 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>1
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 61.10ms - stdout ] ────────────────────────────────────────────────────────
> │ JArray [JNumber 1.0; JNumber 2.0]
> │ JArray [JNumber 1.0; JNumber 2.0]
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jArray "[[ 1, 2, ]]"
> |> parserEqual (
>     Failure (
>         "array",
>         "Unexpected ','",
>         { currentLine = "[[ 1, 2, ]]"; line = 0; column = 6 }
>     )
> )
> 
> ── [ 26.41ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Failure (&quot;array&quot;, &quot;Unexpected 
> &#39;,&#39;&quot;, { currentLine = &quot;[ 1, 2, ]&quot;<br />
> line = 0<br />                                      column = 6 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&quot;array&quot;
> │ </pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>&quot;Unexpected &#39;,&#39;&quot;
> │ </pre></div></td></tr><tr><td>Item3</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = 
> &quot;[ 1, 2, ]&quot;<br />  line = 0<br />  column = 6 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> entLine</td><td><div class="dni-plaintext"><pre>&quot;[ 1, 2, ]&quot;
> │ </pre></div></td></tr><tr><td>line</td><td><div 
> class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>6
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 27.64ms - stdout ] ────────────────────────────────────────────────────────
> │ Line:0 Col:6 Error parsing array
> │ [ 1, 2, ]
> │       ^Unexpected ','
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jObject
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let jObject =
>     let left = spaces >>. pchar '{' .>> spaces
>     let right = pchar '}' .>> spaces
>     let colon = pchar ':' .>> spaces
>     let comma = pchar ',' .>> spaces
>     let key = quotedString .>> spaces
>     let value = jValue .>> spaces
> 
>     let keyValue = (key .>> colon) .>>. value
>     let keyValues = sepBy keyValue comma
> 
>     between left keyValues right
>     |>> Map.ofList
>     |>> JObject
>     <?> "object"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> jValueRef <|
>     choice
>         [[
>             jNull
>             jBool
>             jString
>             jNumber
>             jArray
>             jObject
>         ]]
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jObject """{ "a":1, "b"  :  2 }"""
> |> parserEqual (
>     Success (
>         JObject (
>             Map.ofList [[
>                 "a", JNumber 1.0
>                 "b", JNumber 2.0
>             ]]
>         )
>     )
> )
> 
> ── [ 69.37ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success<br />  (JObject (map [(&quot;a&quot;, 
> JNumber 1.0); (&quot;b&quot;, JNumber 2.0)]),<br />   { lines = [|&quot;{ 
> &quot;a&quot;:1, &quot;b&quot;  :  2 }&quot;|]<br />     position = { line = 
> 1<br />                  column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JObject (map [(&quot;a&quot;, JNumber 1.0); 
> (&quot;b&quot;, JNumber 2.0)]), { lines = [|&quot;{ &quot;a&quot;:1, 
> &quot;b&quot;  :  2 }&quot;|]<br />  position = { line = 1<br />               
> column = 0 } 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JObject (map [(&quot;a&quot;, JNumber 1.0); 
> (&quot;b&quot;, JNumber 
> 2.0)])</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td
> >Item</td><td><table><thead><tr><th><i>key</i></th><th>value</th></tr></thead><t
> body><tr><td><div class="dni-plaintext"><pre>&quot;a&quot;
> │ </pre></div></td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>JNumber 
> 1.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> em</td><td><div class="dni-plaintext"><pre>1.0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td><div 
> class="dni-plaintext"><pre>&quot;b&quot;
> │ 
> </pre></div>...</details></td></tr></tbody></table></td></tr></tbody></table></d
> iv></details></td></tr><tr><td>Item2</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = 
> [|&quot;{ &quot;a&quot;:1, &quot;b&quot;  :  2 }&quot;|]<br />  position = { 
> line = 1<br />               column = 0 } 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> s</td><td><div class="dni-plaintext"><pre>[ { &quot;a&quot;:1, &quot;b&quot;  :
> 2 } ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>1
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 71.40ms - stdout ] ────────────────────────────────────────────────────────
> │ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)])
> │ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run jObject """{ "a":1, "b"  :  2, }"""
> |> parserEqual (
>     Failure (
>         "object",
>         "Unexpected ','",
>         { currentLine = """{ "a":1, "b"  :  2, }"""; line = 0; column = 18 }
>     )
> )
> 
> ── [ 28.74ms - return value ] ──────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Failure (&quot;object&quot;, &quot;Unexpected 
> &#39;,&#39;&quot;, { currentLine = &quot;{ &quot;a&quot;:1, &quot;b&quot;  :  2,
> }&quot;<br />                                       line = 0<br />
> column = 18 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> m1</td><td><div class="dni-plaintext"><pre>&quot;object&quot;
> │ </pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>&quot;Unexpected &#39;,&#39;&quot;
> │ </pre></div></td></tr><tr><td>Item3</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = 
> &quot;{ &quot;a&quot;:1, &quot;b&quot;  :  2, }&quot;<br />  line = 0<br />  
> column = 18 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> entLine</td><td><div class="dni-plaintext"><pre>&quot;{ &quot;a&quot;:1, 
> &quot;b&quot;  :  2, }&quot;
> │ </pre></div></td></tr><tr><td>line</td><td><div 
> class="dni-plaintext"><pre>0
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>18
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 30.00ms - stdout ] ────────────────────────────────────────────────────────
> │ Line:0 Col:18 Error parsing object
> │ { "a":1, "b"  :  2, }
> │                   ^Unexpected ','
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### jValue
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let example1 = """{
>     "name" : "Scott",
>     "isMale" : true,
>     "bday" : {"year":2001, "month":12, "day":25 },
>     "favouriteColors" : [["blue", "green"]],
>     "emptyArray" : [[]],
>     "emptyObject" : {}
> }"""
> run jValue example1
> |> parserEqual (
>     Success (
>         JObject (
>             Map.ofList [[
>                 "name", JString "Scott"
>                 "isMale", JBool true
>                 "bday", JObject (
>                     Map.ofList [[
>                         "year", JNumber 2001.0
>                         "month", JNumber 12.0
>                         "day", JNumber 25.0
>                     ]]
>                 )
>                 "favouriteColors", JArray [[ JString "blue"; JString "green" ]]
>                 "emptyArray", JArray [[]]
>                 "emptyObject", JObject Map.empty
>             ]]
>         )
>     )
> )
> 
> ── [ 127.53ms - return value ] ─────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success<br />  (JObject<br />     (map<br />        
> [(&quot;bday&quot;,<br />          JObject<br />            (map<br />
> [(&quot;day&quot;, JNumber 25.0); (&quot;month&quot;, JNumber 12.0);<br />
> (&quot;year&quot;, JNumber 2001.0)])); (&quot;emptyArray&quot;, JArray []);<br 
> />         (&quot;emptyObject&quot;, JObject (map []));<br />         
> (&quot;favouriteColors&quot;, 
> ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> em</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JObject<br />  (map<br />     
> [(&quot;bday&quot;,<br />       JObject<br />         (map<br />            
> [(&quot;day&quot;, JNumber 25.0); (&quot;month&quot;, JNumber 12.0);<br />
> (&quot;year&quot;, JNumber 2001.0)])); (&quot;emptyArray&quot;, JArray []);<br 
> />      (&quot;emptyObject&quot;, JObject (map []));<br />      
> (&quot;favouriteColors&quot;, JArray [JString &quot;blue&quot;; JString 
> &quot;gr...</code></span></summary><div><table><thead><tr></tr></thead><tbody><t
> r><td>Item1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JObject<br />  (map<br />     [(&quot;bday&quot;,<br
> />       JObject<br />         (map<br />            [(&quot;day&quot;, JNumber 
> 25.0); (&quot;month&quot;, JNumber 12.0);<br />             (&quot;year&quot;, 
> JNumber 2001.0)])); (&quot;emptyArray&quot;, JArra...= 8<br />               
> column = 0 } 
> ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>li
> nes</td><td><div class="dni-plaintext"><pre>[ {,     &quot;name&quot; : 
> &quot;Scott&quot;,,     &quot;isMale&quot; : true,,     &quot;bday&quot; : 
> {&quot;year&quot;:2001, &quot;month&quot;:12, &quot;day&quot;:25 },,     
> &quot;favouriteColors&quot; : [&quot;blue&quot;, &quot;green&quot;],,     
> &quot;emptyArray&quot; : [],,     &quot;emptyObject&quot; : {}, } 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 8<br />
> column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>8
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 129.33ms - stdout ] ───────────────────────────────────────────────────────
> │ JObject
> │   (map
> │      [("bday",
> │        JObject
> │          (map
> │             [("day", JNumber 25.0); ("month", JNumber 12.0);
> │              ("year", JNumber 2001.0)])); ("emptyArray", 
> JArray []);
> │       ("emptyObject", JObject (map []));
> │       ("favouriteColors", JArray [JString "blue"; JString 
> "green"]);
> │       ("isMale", JBool true); ("name", JString "Scott")])
> │ JObject
> │   (map
> │      [("bday", JObject (map [("day", JNumber 25.0); ("month",
> JNumber 12.0); ("year", JNumber 2001.0)]));
> │       ("emptyArray", JArray []); ("emptyObject", JObject (map
> []));
> │       ("favouriteColors", JArray [JString "blue"; JString 
> "green"]); ("isMale", JBool true); ("name", JString "Scott")])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let example2 = """{"widget": {
>     "debug": "on",
>     "window": {
>         "title": "Sample Konfabulator Widget",
>         "name": "main_window",
>         "width": 500,
>         "height": 500
>     },
>     "image": {
>         "src": "Images/Sun.png",
>         "name": "sun1",
>         "hOffset": 250,
>         "vOffset": 250,
>         "alignment": "center"
>     },
>     "text": {
>         "data": "Click Here",
>         "size": 36,
>         "style": "bold",
>         "name": "text1",
>         "hOffset": 250,
>         "vOffset": 100,
>         "alignment": "center",
>         "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
>     }
> }}"""
> 
> run jValue example2
> |> parserEqual (
>     Success (
>         JObject (
>             Map.ofList [[
>                 "widget", JObject (
>                     Map.ofList [[
>                         "debug", JString "on"
>                         "window", JObject (
>                             Map.ofList [[
>                                 "title", JString "Sample Konfabulator Widget"
>                                 "name", JString "main_window"
>                                 "width", JNumber 500.0
>                                 "height", JNumber 500.0
>                             ]]
>                         )
>                         "image", JObject (
>                             Map.ofList [[
>                                 "src", JString "Images/Sun.png"
>                                 "name", JString "sun1"
>                                 "hOffset", JNumber 250.0
>                                 "vOffset", JNumber 250.0
>                                 "alignment", JString "center"
>                             ]]
>                         )
>                         "text", JObject (
>                             Map.ofList [[
>                                 "data", JString "Click Here"
>                                 "size", JNumber 36.0
>                                 "style", JString "bold"
>                                 "name", JString "text1"
>                                 "hOffset", JNumber 250.0
>                                 "vOffset", JNumber 100.0
>                                 "alignment", JString "center"
>                                 "onMouseUp", JString "sun1.opacity = 
> (sun1.opacity / 100) * 90;"
>                             ]]
>                         )
>                     ]]
>                 )
>             ]]
>         )
>     )
> )
> 
> ── [ 237.15ms - return value ] ─────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success<br />  (JObject<br />     (map<br />        
> [(&quot;widget&quot;,<br />          JObject<br />            (map<br />
> [(&quot;debug&quot;, JString &quot;on&quot;);<br />                
> (&quot;image&quot;,<br />                 JObject<br />                   
> (map<br />                      [(&quot;alignment&quot;, JString 
> &quot;center&quot;);<br />                       
> (&quot;hOffset&quot;...</code></span></summary><div><table><thead><tr></tr></the
> ad><tbody><tr><td>Item</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JObject<br />  (map<br />     
> [(&quot;widget&quot;,<br />       JObject<br />         (map<br />            
> [(&quot;debug&quot;, JString &quot;on&quot;);<br />             
> (&quot;image&quot;,<br />              JObject<br />                (map<br />
> [(&quot;alignment&quot;, JString &quot;center&quot;); (&quot;hOffset&quot;, 
> JNumber 250.0);<br />                    (&quot;name&quot;, JString 
> &quot;sun1&quot;...</code></span></summary><div><table><thead><tr></tr></thead><
> tbody><tr><td>Item1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JObject<br />  (map<br />     
> [(&quot;widget&quot;,<br />       JObject<br />         (map<br />            
> [(&quot;debug&quot;, JString &quot;on&quot;);<br />             
> (&quot;image&quot;,<br />              JObject<br />                (...       
> &quot;alignment&quot;: &quot;center&quot;,     },,     &quot;text&quot;: {,
> &quot;data&quot;: &quot;Click Here&quot;,,         &quot;size&quot;: 36,,
> &quot;style&quot;: &quot;bold&quot;,,         &quot;name&quot;: 
> &quot;text1&quot;,,         &quot;hOffset&quot;: 250,,         
> &quot;vOffset&quot;: 100,,         &quot;alignment&quot;: &quot;center&quot;,,
> &quot;onMouseUp&quot;: &quot;sun1.opacity = (sun1.opacity / 100) * 90;&quot;,
> }, }} ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 26<br 
> />  column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>26
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 238.76ms - stdout ] ───────────────────────────────────────────────────────
> │ JObject
> │   (map
> │      [("widget",
> │        JObject
> │          (map
> │             [("debug", JString "on");
> │              ("image",
> │               JObject
> │                 (map
> │                    [("alignment", JString "center"); 
> ("hOffset", JNumber 250.0);
> │                     ("name", JString "sun1"); ("src", JString
> "Images/Sun.png");
> │                     ("vOffset", JNumber 250.0)]));
> │              ("text",
> │               JObject
> │                 (map
> │                    [("alignment", JString "center");
> │                     ("data", JString "Click Here"); 
> ("hOffset", JNumber 250.0);
> │                     ("name", JString "text1");
> │                     ("onMouseUp",
> │                      JString "sun1.opacity = (sun1.opacity / 
> 100) * 90;");
> │                     ("size", JNumber 36.0); ("style", JString
> "bold");
> │                     ("vOffset", JNumber 100.0)]));
> │              ("window",
> │               JObject
> │                 (map
> │                    [("height", JNumber 500.0); ("name", 
> JString "main_window");
> │                     ("title", JString "Sample Konfabulator 
> Widget");
> │                     ("width", JNumber 500.0)]))]))])
> │ JObject
> │   (map
> │      [("widget",
> │        JObject
> │          (map
> │             [("debug", JString "on");
> │              ("image",
> │               JObject
> │                 (map
> │                    [("alignment", JString "center"); 
> ("hOffset", JNumber 250.0); ("name", JString "sun1");
> │                     ("src", JString "Images/Sun.png"); 
> ("vOffset", JNumber 250.0)]));
> │              ("text",
> │               JObject
> │                 (map
> │                    [("alignment", JString "center"); ("data",
> JString "Click Here"); ("hOffset", JNumber 250.0);
> │                     ("name", JString "text1"); ("onMouseUp", 
> JString "sun1.opacity = (sun1.opacity / 100) * 90;");
> │                     ("size", JNumber 36.0); ("style", JString
> "bold"); ("vOffset", JNumber 100.0)]));
> │              ("window",
> │               JObject
> │                 (map
> │                    [("height", JNumber 500.0); ("name", 
> JString "main_window");
> │                     ("title", JString "Sample Konfabulator 
> Widget"); ("width", JNumber 500.0)]))]))])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let example3 = """{
>   "string": "Hello, \"World\"!",
>   "escapedString": "This string contains \\/\\\\\\b\\f\\n\\r\\t\\\"\\'",
>   "number": 42,
>   "scientificNumber": 3.14e-10,
>   "boolean": true,
>   "nullValue": null,
>   "array": [[1, 2, 3, 4, 5]],
>   "unicodeString1": "프리마",
>   "unicodeString2": "\u0048\u0065\u006C\u006C\u006F, 
> \u0022\u0057\u006F\u0072\u006C\u0064\u0022!",
>   "specialCharacters": "!@#$%^&*()",
>   "emptyArray": [[]],
>   "emptyObject": {},
>   "nestedArrays": [[[[1, 2, 3]], [[4, 5, 6]]]],
>   "object": {
>     "nestedString": "Nested Value",
>     "nestedNumber": 3.14,
>     "nestedBoolean": false,
>     "nestedNull": null,
>     "nestedArray": [["a", "b", "c"]],
>     "nestedObject": {
>       "nestedProperty": "Nested Object Value"
>     }
>   },
>   "nestedObjects": [[
>     {"name": "Alice", "age": 25},
>     {"name": "Bob", "age": 30}
>   ]]
> }"""
> run jValue example3
> |> parserEqual (
>     Success (
>         JObject (
>             Map.ofList [[
>                 "string", JString @"Hello, ""World""!"
>                 "escapedString", JString @"This string contains 
> \/\\\b\f\n\r\t\""\'"
>                 "number", JNumber 42.0
>                 "scientificNumber", JNumber 3.14e-10
>                 "boolean", JBool true
>                 "nullValue", JNull
>                 "array", JArray [[
>                     JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 
> 5.0
>                 ]]
>                 "unicodeString1", JString "프리마"
>                 "unicodeString2", JString @"Hello, ""World""!"
>                 "specialCharacters", JString "!@#$%^&*()"
>                 "emptyArray", JArray [[]]
>                 "emptyObject", JObject Map.empty
>                 "nestedArrays", JArray [[
>                     JArray [[ JNumber 1.0; JNumber 2.0; JNumber 3.0 ]]
>                     JArray [[ JNumber 4.0; JNumber 5.0; JNumber 6.0 ]]
>                 ]]
>                 "object", JObject (
>                     Map.ofList [[
>                         "nestedString", JString "Nested Value"
>                         "nestedNumber", JNumber 3.14
>                         "nestedBoolean", JBool false
>                         "nestedNull", JNull
>                         "nestedArray", JArray [[JString "a"; JString "b"; 
> JString "c"]]
>                         "nestedObject", JObject (
>                             Map.ofList [[
>                                 "nestedProperty", JString "Nested Object Value"
>                             ]]
>                         )
>                     ]]
>                 )
>                 "nestedObjects", JArray [[
>                   JObject (Map.ofList [[ "name", JString "Alice"; "age", JNumber
> 25.0 ]])
>                   JObject (Map.ofList [[ "name", JString "Bob"; "age", JNumber 
> 30.0 ]])
>                 ]]
>             ]]
>         )
>     )
> )
> 
> ── [ 316.89ms - return value ] ─────────────────────────────────────────────────
> │ <details open="open" class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>Success<br />  (JObject<br />     (map<br />        
> [(&quot;array&quot;,<br />          JArray<br />            [JNumber 1.0; 
> JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 5.0]);<br />         
> (&quot;boolean&quot;, JBool true); (&quot;emptyArray&quot;, JArray []);<br />
> (&quot;emptyObject&quot;, JObject (map []));<br />         
> (&quot;escapedString&quot;, JString &quot;This 
> s...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> tem</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(JObject<br />  (map<br />     
> [(&quot;array&quot;,<br />       JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; 
> JNumber 4.0; JNumber 5.0]);<br />      (&quot;boolean&quot;, JBool true); 
> (&quot;emptyArray&quot;, JArray []);<br />      (&quot;emptyObject&quot;, 
> JObject (map []));<br />      (&quot;escapedString&quot;, JString &quot;This 
> string contains \/\\\b\f<br />\r\t\&quot;\&#39;&quot;);<br />    
> ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> em1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JObject<br />  (map<br />     
> [(&quot;array&quot;,<br />       JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; 
> JNumber 4.0; JNumber 5.0]);<br />      (&quot;boolean&quot;, JBool true); 
> (&quot;emptyArray&quot;, JArray []);<br />      (&quot;emptyObject&quot;, 
> JObject (map []));<br />      (&quot;es...quot;,,     &quot;nestedNumber&quot;: 
> 3.14,,     &quot;nestedBoolean&quot;: false,,     &quot;nestedNull&quot;: null,,
> &quot;nestedArray&quot;: [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;],,     
> &quot;nestedObject&quot;: {,       &quot;nestedProperty&quot;: &quot;Nested 
> Object Value&quot;,     },   },,   &quot;nestedObjects&quot;: [,     
> {&quot;name&quot;: &quot;Alice&quot;, &quot;age&quot;: 25},,     
> {&quot;name&quot;: &quot;Bob&quot;, &quot;age&quot;: 30},   ], } 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 29<br 
> />  column = 0 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> </td><td><div class="dni-plaintext"><pre>29
> │ </pre></div></td></tr><tr><td>column</td><td><div 
> class="dni-plaintext"><pre>0
> │ 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> ble></div></details><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── [ 318.77ms - stdout ] ───────────────────────────────────────────────────────
> │ JObject
> │   (map
> │      [("array",
> │        JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber
> 4.0; JNumber 5.0]);
> │       ("boolean", JBool true); ("emptyArray", JArray []);
> │       ("emptyObject", JObject (map []));
> │       ("escapedString", JString "This string contains 
> \/\\\b\f\n\r\t\"\'");
> │       ("nestedArrays",
> │        JArray
> │          [JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0];
> │           JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]);
> │       ("nestedObjects",
> │        JArray
> │          [JObject (map [("age", JNumber 25.0); ("name", 
> JString "Alice")]);
> │           JObject (map [("age", JNumber 30.0); ("name", 
> JString "Bob")])]);
> │       ("nullValue", JNull); ("number", JNumber 42.0); ...])
> │ JObject
> │   (map
> │      [("array", JArray [JNumber 1.0; JNumber 2.0; JNumber 
> 3.0; JNumber 4.0; JNumber 5.0]); ("boolean", JBool true);
> │       ("emptyArray", JArray []); ("emptyObject", JObject (map
> []));
> │       ("escapedString", JString "This string contains 
> \/\\\b\f\n\r\t\"\'");
> │       ("nestedArrays",
> │        JArray [JArray [JNumber 1.0; JNumber 2.0; JNumber 
> 3.0]; JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]);
> │       ("nestedObjects",
> │        JArray
> │          [JObject (map [("age", JNumber 25.0); ("name", 
> JString "Alice")]);
> │           JObject (map [("age", JNumber 30.0); ("name", 
> JString "Bob")])]); ("nullValue", JNull);
> │       ("number", JNumber 42.0); ...])
> │ 
> │ 
00:00:18 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 154933 }
00:00:18 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:19 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb to html
00:00:19 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:19 v #7 !   validate(nb)
00:00:19 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:19 v #9 !   return _pygments_highlight(
00:00:20 v #10 ! [NbConvertApp] Writing 500494 bytes to /home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.html
00:00:20 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 906 }
00:00:20 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 906 }
00:00:20 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:20 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:20 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:20 d #16 spiral.run / dib / { exit_code = 0; result_length = 155898 }
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Parser.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # Parser (Polyglot)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Common
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TextInput
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Position =
>     {
>         line : int
>         column : int
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let initialPos = { line = 0; column = 0 }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline incrCol (pos : Position) =
>     { pos with column = pos.column + 1 }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline incrLine pos =
>     { line = pos.line + 1; column = 0 }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type InputState =
>     {
>         lines : string[[]]
>         position : Position
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline fromStr str =
>     {
>         lines =
>             if str |> String.IsNullOrEmpty
>             then [[||]]
>             else str |> SpiralSm.split_string [[| "\r\n"; "\n" |]]
>         position = initialPos
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> fromStr "" |> _assertEqual {
>     lines = [[||]]
>     position = { line = 0; column = 0 }
> }
> 
> ── [ 39.64ms - stdout ] ────────────────────────────────────────────────────────
> │ { lines = [||]
> │   position = { line = 0
> │                column = 0 } }
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> fromStr "Hello \n World" |> _assertEqual {
>     lines = [[| "Hello "; " World" |]]
>     position = { line = 0; column = 0 }
> }
> 
> ── [ 16.16ms - stdout ] ────────────────────────────────────────────────────────
> │ { lines = [|"Hello "; " World"|]
> │   position = { line = 0
> │                column = 0 } }
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline currentLine inputState =
>     let linePos = inputState.position.line
>     if linePos < inputState.lines.Length
>     then inputState.lines.[[linePos]]
>     else "end of file"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline nextChar input =
>     let linePos = input.position.line
>     let colPos = input.position.column
> 
>     if linePos >= input.lines.Length
>     then input, None
>     else
>         let currentLine = currentLine input
>         if colPos < currentLine.Length then
>             let char = currentLine.[[colPos]]
>             let newPos = incrCol input.position
>             let newState = { input with position = newPos }
>             newState, Some char
>         else
>             let char = '\n'
>             let newPos = incrLine input.position
>             let newState = { input with position = newPos }
>             newState, Some char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let newInput, charOpt = fromStr "Hello World" |> nextChar
> 
> newInput |> _assertEqual {
>     lines = [[| "Hello World" |]]
>     position = { line = 0; column = 1 }
> }
> charOpt |> _assertEqual (Some 'H')
> 
> ── [ 37.24ms - stdout ] ────────────────────────────────────────────────────────
> │ { lines = [|"Hello World"|]
> │   position = { line = 0
> │                column = 1 } }
> │ 
> │ Some 'H'
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let newInput, charOpt = fromStr "Hello\n\nWorld" |> nextChar
> 
> newInput |> _assertEqual {
>     lines = [[| "Hello"; ""; "World" |]]
>     position = { line = 0; column = 1 }
> }
> charOpt |> _assertEqual (Some 'H')
> 
> ── [ 24.23ms - stdout ] ────────────────────────────────────────────────────────
> │ { lines = [|"Hello"; ""; "World"|]
> │   position = { line = 0
> │                column = 1 } }
> │ 
> │ Some 'H'
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Parser
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Input = InputState
> type ParserLabel = string
> type ParserError = string
> 
> type ParserPosition =
>     {
>         currentLine : string
>         line : int
>         column : int
>     }
> 
> type ParseResult<'a> =
>     | Success of 'a
>     | Failure of ParserLabel * ParserError * ParserPosition
> 
> type Parser<'a> =
>     {
>         label : ParserLabel
>         parseFn : Input -> ParseResult<'a * Input>
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline printResult result =
>     match result with
>     | Success (value, input) ->
>         printfn $"%A{value}"
>     | Failure (label, error, parserPos) ->
>         let errorLine = parserPos.currentLine
>         let colPos = parserPos.column
>         let linePos = parserPos.line
>         let failureCaret = $"{' ' |> string |> String.replicate colPos}^{error}"
>         printfn $"Line:%i{linePos} Col:%i{colPos} Error parsing 
> %s{label}\n%s{errorLine}\n%s{failureCaret}"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline runOnInput parser input =
>     parser.parseFn input
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline run parser inputStr =
>     runOnInput parser (fromStr inputStr)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline parserPositionFromInputState (inputState : Input) =
>     {
>         currentLine = currentLine inputState
>         line = inputState.position.line
>         column = inputState.position.column
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline getLabel parser =
>     parser.label
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline setLabel parser newLabel =
>     {
>         label = newLabel
>         parseFn = fun input ->
>             match parser.parseFn input with
>             | Success s -> Success s
>             | Failure (oldLabel, err, pos) -> Failure (newLabel, err, pos)
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let (<?>) = setLabel
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline satisfy predicate label =
>     {
>         label = label
>         parseFn = fun input ->
>             let remainingInput, charOpt = nextChar input
>             match charOpt with
>             | None ->
>                 let err = "No more input"
>                 let pos = parserPositionFromInputState input
>                 Failure (label, err, pos)
>             | Some first ->
>                 if predicate first
>                 then Success (first, remainingInput)
>                 else
>                     let err = $"Unexpected '%c{first}'"
>                     let pos = parserPositionFromInputState input
>                     Failure (label, err, pos)
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> runOnInput parser input |> _assertEqual (
>     Success (
>         'H',
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 1 }
>         }
>     )
> )
> 
> ── [ 30.64ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ('H', { lines = [|"Hello"|]
> │                 position = { line = 0
> │                              column = 1 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "World"
> let parser = satisfy (fun c -> c = 'H') "H"
> runOnInput parser input |> _assertEqual (
>     Failure (
>         "H",
>         "Unexpected 'W'",
>         {
>             currentLine = "World"
>             line = 0
>             column = 0
>         }
>     )
> )
> 
> ── [ 26.67ms - stdout ] ────────────────────────────────────────────────────────
> │ Failure ("H", "Unexpected 'W'", { currentLine = "World"
> │                                   line = 0
> │                                   column = 0 })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline bindP f p =
>     {
>         label = "unknown"
>         parseFn = fun input ->
>             match runOnInput p input with
>             | Failure (label, err, pos) -> Failure (label, err, pos)
>             | Success (value1, remainingInput) -> runOnInput (f value1) 
> remainingInput
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (>>=) p f = bindP f p
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"
> runOnInput parser2 input |> _assertEqual (
>     Success (
>         'e',
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 2 }
>         }
>     )
> )
> 
> ── [ 38.88ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ('e', { lines = [|"Hello"|]
> │                 position = { line = 0
> │                              column = 2 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "World"
> let parser = satisfy (fun c -> c = 'W') "W"
> let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"
> runOnInput parser2 input |> _assertEqual (
>     Failure (
>         "e",
>         "Unexpected 'o'",
>         {
>             currentLine = "World"
>             line = 0
>             column = 1
>         }
>     )
> )
> 
> ── [ 35.48ms - stdout ] ────────────────────────────────────────────────────────
> │ Failure ("e", "Unexpected 'o'", { currentLine = "World"
> │                                   line = 0
> │                                   column = 1 })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline returnP x =
>     {
>         label = $"%A{x}"
>         parseFn = fun input -> Success (x, input)
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = returnP "Hello"
> runOnInput parser input |> _assertEqual (
>     Success (
>         "Hello",
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 0 }
>         }
>     )
> )
> 
> ── [ 23.08ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ("Hello", { lines = [|"Hello"|]
> │                     position = { line = 0
> │                                  column = 0 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline mapP f =
>     bindP (f >> returnP)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let (<!>) = mapP
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (|>>) x f = f <!> x
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = parser |>> string
> runOnInput parser2 input |> _assertEqual (
>     Success (
>         "H",
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 1 }
>         }
>     )
> )
> 
> ── [ 30.13ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ("H", { lines = [|"Hello"|]
> │                 position = { line = 0
> │                              column = 1 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline applyP fP xP =
>     fP >>=
>         fun f ->
>             xP >>=
>                 fun x ->
>                     returnP (f x)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let (<*>) = applyP
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline lift2 f xP yP =
>     returnP f <*> xP <*> yP
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = satisfy (fun c -> c = 'e') "e"
> let parser3 = lift2 (fun c1 c2 -> string c1 + string c2) parser parser2
> runOnInput parser3 input |> _assertEqual (
>     Success (
>         "He",
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 2 }
>         }
>     )
> )
> 
> ── [ 46.20ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ("He", { lines = [|"Hello"|]
> │                  position = { line = 0
> │                               column = 2 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline andThen p1 p2 =
>     p1 >>=
>         fun p1Result ->
>             p2 >>=
>                 fun p2Result ->
>                     returnP (p1Result, p2Result)
>     <?> $"{getLabel p1} andThen {getLabel p2}"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let (.>>.) = andThen
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = satisfy (fun c -> c = 'e') "e"
> let parser3 = parser .>>. parser2
> runOnInput parser3 input |> _assertEqual (
>     Success (
>         ('H', 'e'),
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 2 }
>         }
>     )
> )
> 
> ── [ 35.98ms - stdout ] ────────────────────────────────────────────────────────
> │ Success (('H', 'e'), { lines = [|"Hello"|]
> │                        position = { line = 0
> │                                     column = 2 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline orElse p1 p2 =
>     {
>         label = $"{getLabel p1} orElse {getLabel p2}"
>         parseFn = fun input ->
>             match runOnInput p1 input with
>             | Success _ as result -> result
>             | Failure _ -> runOnInput p2 input
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let (<|>) = orElse
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = satisfy (fun c -> c = 'h') "h"
> let parser3 = parser <|> parser2
> runOnInput parser3 input |> _assertEqual (
>     Success (
>         'h',
>         {
>             lines = [[| "hello" |]]
>             position = { line = 0; column = 1 }
>         }
>     )
> )
> 
> ── [ 36.31ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ('h', { lines = [|"hello"|]
> │                 position = { line = 0
> │                              column = 1 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline choice listOfParsers =
>     listOfParsers |> List.reduce (<|>)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = satisfy (fun c -> c = 'h') "h"
> let parser3 = choice [[ parser; parser2 ]]
> runOnInput parser3 input |> _assertEqual (
>     Success (
>         'h',
>         {
>             lines = [[| "hello" |]]
>             position = { line = 0; column = 1 }
>         }
>     )
> )
> 
> ── [ 36.53ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ('h', { lines = [|"hello"|]
> │                 position = { line = 0
> │                              column = 1 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec sequence parserList =
>     match parserList with
>     | [[]] -> returnP [[]]
>     | head :: tail -> (lift2 cons) head (sequence tail)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = satisfy (fun c -> c = 'e') "e"
> let parser3 = sequence [[ parser; parser2 ]]
> runOnInput parser3 input |> _assertEqual (
>     Success (
>         [[ 'H'; 'e' ]],
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 2 }
>         }
>     )
> )
> 
> ── [ 53.79ms - stdout ] ────────────────────────────────────────────────────────
> │ Success (['H'; 'e'], { lines = [|"Hello"|]
> │                        position = { line = 0
> │                                     column = 2 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec parseZeroOrMore parser input =
>     match runOnInput parser input with
>     | Failure (_, _, _) ->
>         [[]], input
>     | Success (firstValue, inputAfterFirstParse) ->
>         let subsequentValues, remainingInput = parseZeroOrMore parser 
> inputAfterFirstParse
>         firstValue :: subsequentValues, remainingInput
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many parser =
>     {
>         label = $"many {getLabel parser}"
>         parseFn = fun input -> Success (parseZeroOrMore parser input)
>     }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = many parser
> runOnInput parser2 input |> _assertEqual (
>     Success (
>         [[]],
>         {
>             lines = [[| "hello" |]]
>             position = { line = 0; column = 0 }
>         }
>     )
> )
> 
> ── [ 27.54ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ([], { lines = [|"hello"|]
> │                position = { line = 0
> │                             column = 0 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many1 p =
>     p >>=
>         fun head ->
>             many p >>=
>                 fun tail ->
>                     returnP (head :: tail)
>     <?> $"many1 {getLabel p}"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = many1 parser
> runOnInput parser2 input |> _assertEqual (
>     Failure (
>         "many1 H",
>         "Unexpected 'h'",
>         {
>             currentLine = "hello"
>             line = 0
>             column = 0
>         }
>     )
> )
> 
> ── [ 37.88ms - stdout ] ────────────────────────────────────────────────────────
> │ Failure ("many1 H", "Unexpected 'h'", { currentLine = "hello"
> │                                         line = 0
> │                                         column = 0 })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline opt p =
>     let some = p |>> Some
>     let none = returnP None
>     (some <|> none)
>     <?> $"opt {getLabel p}"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "hello"
> let parser = satisfy (fun c -> c = 'H') "H"
> let parser2 = opt parser
> runOnInput parser2 input |> _assertEqual (
>     Success (
>         None,
>         {
>             lines = [[| "hello" |]]
>             position = { line = 0; column = 0 }
>         }
>     )
> )
> 
> ── [ 32.74ms - stdout ] ────────────────────────────────────────────────────────
> │ Success (None, { lines = [|"hello"|]
> │                  position = { line = 0
> │                               column = 0 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (.>>) p1 p2 =
>     p1 .>>. p2
>     |> mapP fst
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (>>.) p1 p2 =
>     p1 .>>. p2
>     |> mapP snd
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline between p1 p2 p3 =
>     p1 >>. p2 .>> p3
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "[[Hello]]"
> let parser =
>     between
>         (satisfy (fun c -> c = '[[') "[[")
>         (many (satisfy (fun c -> [[ 'a' .. 'z' ]] @ [[ 'A' .. 'Z' ]] |> 
> List.contains c) "letter"))
>         (satisfy (fun c -> c = ']]') "]]")
> runOnInput parser input |> _assertEqual (
>     Success (
>         [[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
>         {
>             lines = [[| "[[Hello]]" |]]
>             position = { line = 0; column = 7 }
>         }
>     )
> )
> 
> ── [ 108.43ms - stdout ] ───────────────────────────────────────────────────────
> │ Success (['H'; 'e'; 'l'; 'l'; 'o'], { lines = [|"[Hello]"|]
> │                                       position = { line = 0
> │                                                    column = 7
> } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline sepBy1 p sep =
>     let sepThenP = sep >>. p
>     p .>>. many sepThenP
>     |>> fun (p, pList) -> p :: pList
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline sepBy p sep =
>     sepBy1 p sep <|> returnP [[]]
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello,World"
> let parser = sepBy (many (satisfy (fun c -> c <> ',') "not comma")) (satisfy 
> (fun c -> c = ',') "comma")
> runOnInput parser input |> _assertEqual (
>     Success (
>         [[ [[ 'H'; 'e'; 'l'; 'l'; 'o' ]]; [[ 'W'; 'o'; 'r'; 'l'; 'd'; '\n' ]] 
> ]],
>         {
>             lines = [[| "Hello,World" |]]
>             position = { line = 1; column = 0 }
>         }
>     )
> )
> 
> ── [ 73.03ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ([['H'; 'e'; 'l'; 'l'; 'o']; ['W'; 'o'; 'r'; 'l'; 
> 'd'; '\010']], { lines = [|"Hello,World"|]
> │
> position = { line = 1
> │
>                                                                                 
> column = 0 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline pchar charToMatch =
>     satisfy ((=) charToMatch) $"%c{charToMatch}"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline anyOf listOfChars =
>     listOfChars
>     |> List.map pchar
>     |> choice
>     <?> $"anyOf %A{listOfChars}"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = anyOf [[ 'H'; 'e'; 'l'; 'o' ]] |> many
> runOnInput parser input |> _assertEqual (
>     Success (
>         [[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 5 }
>         }
>     )
> )
> 
> ── [ 34.95ms - stdout ] ────────────────────────────────────────────────────────
> │ Success (['H'; 'e'; 'l'; 'l'; 'o'], { lines = [|"Hello"|]
> │                                       position = { line = 0
> │                                                    column = 5
> } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline charListToStr charList =
>     charList |> List.toArray |> String
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline manyChars cp =
>     many cp
>     |>> charListToStr
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline manyChars1 cp =
>     many1 cp
>     |>> charListToStr
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = manyChars1 (anyOf [[ 'H'; 'e'; 'l'; 'o' ]])
> runOnInput parser input |> _assertEqual (
>     Success (
>         "Hello",
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 5 }
>         }
>     )
> )
> 
> ── [ 61.14ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ("Hello", { lines = [|"Hello"|]
> │                     position = { line = 0
> │                                  column = 5 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline pstring str =
>     str
>     |> List.ofSeq
>     |> List.map pchar
>     |> sequence
>     |> mapP charListToStr
>     <?> str
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = pstring "Hello"
> runOnInput parser input |> _assertEqual (
>     Success (
>         "Hello",
>         {
>             lines = [[| "Hello" |]]
>             position = { line = 0; column = 5 }
>         }
>     )
> )
> 
> ── [ 49.43ms - stdout ] ────────────────────────────────────────────────────────
> │ Success ("Hello", { lines = [|"Hello"|]
> │                     position = { line = 0
> │                                  column = 5 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let whitespaceChar =
>     satisfy Char.IsWhiteSpace "whitespace"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let spaces = many whitespaceChar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let spaces1 = many1 whitespaceChar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "  Hello"
> let parser = spaces1 .>>. pstring "Hello"
> runOnInput parser input |> _assertEqual (
>     Success (
>         ([[ ' '; ' ' ]], "Hello"),
>         {
>             lines = [[| "  Hello" |]]
>             position = { line = 0; column = 7 }
>         }
>     )
> )
> 
> ── [ 46.58ms - stdout ] ────────────────────────────────────────────────────────
> │ Success (([' '; ' '], "Hello"), { lines = [|"  Hello"|]
> │                                   position = { line = 0
> │                                                column = 7 } 
> })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let digitChar =
>     satisfy Char.IsDigit "digit"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let input = fromStr "Hello"
> let parser = digitChar
> runOnInput parser input |> _assertEqual (
>     Failure (
>         "digit",
>         "Unexpected 'H'",
>         {
>             currentLine = "Hello"
>             line = 0
>             column = 0
>         }
>     )
> )
> 
> ── [ 17.17ms - stdout ] ────────────────────────────────────────────────────────
> │ Failure ("digit", "Unexpected 'H'", { currentLine = "Hello"
> │                                       line = 0
> │                                       column = 0 })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let pint =
>     let inline resultToInt (sign, digits) =
>         let i = int digits
>         match sign with
>         | Some ch -> -i
>         | None -> i
> 
>     let digits = manyChars1 digitChar
> 
>     opt (pchar '-') .>>. digits
>     |> mapP resultToInt
>     <?> "integer"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run pint "-123"
> |> _assertEqual (
>     Success (
>         -123,
>         {
>             lines = [[| "-123" |]]
>             position = { line = 0; column = 4 }
>         }
>     )
> )
> 
> ── [ 28.34ms - stdout ] ────────────────────────────────────────────────────────
> │ Success (-123, { lines = [|"-123"|]
> │                  position = { line = 0
> │                               column = 4 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let pfloat =
>     let inline resultToFloat (((sign, digits1), point), digits2) =
>         let fl = float $"{digits1}.{digits2}"
>         match sign with
>         | Some ch -> -fl
>         | None -> fl
> 
>     let digits = manyChars1 digitChar
> 
>     opt (pchar '-') .>>. digits .>>. pchar '.' .>>. digits
>     |> mapP resultToFloat
>     <?> "float"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> run pfloat "-123.45"
> |> _assertEqual (
>     Success (
>         -123.45,
>         {
>             lines = [[| "-123.45" |]]
>             position = { line = 0; column = 7 }
>         }
>     )
> )
> 
> ── [ 30.48ms - stdout ] ────────────────────────────────────────────────────────
> │ Success (-123.45, { lines = [|"-123.45"|]
> │                     position = { line = 0
> │                                  column = 7 } })
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline createParserForwardedToRef<'a> () =
>     let mutable parserRef : Parser<'a> =
>         {
>             label = "unknown"
>             parseFn = fun _ -> failwith "unfixed forwarded parser"
>         }
> 
>     let wrapperParser =
>         { parserRef with
>             parseFn = fun input -> runOnInput parserRef input
>         }
> 
>     wrapperParser, (fun v -> parserRef <- v)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (>>%) p x =
>     p
>     |>> fun _ -> x
00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 33524 }
00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:16 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb to html
00:00:16 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:16 v #7 !   validate(nb)
00:00:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:16 v #9 !   return _pygments_highlight(
00:00:17 v #10 ! [NbConvertApp] Writing 413727 bytes to /home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.html
00:00:17 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 898 }
00:00:17 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 898 }
00:00:17 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 34481 }
00:00:00 d #1 writeDibCode / output: Fs / path: Parser.dib
00:00:00 d #1 writeDibCode / output: Fs / path: JsonParser.dib
00:00:00 d #2 parseDibCode / output: Fs / file: Parser.dib
00:00:00 d #3 parseDibCode / output: Fs / file: JsonParser.dib
In [ ]:
{ pwsh ../apps/spiral/build.ps1 } | Invoke-Block
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Supervisor.dib", "--retries", "3"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # Supervisor (Polyglot)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> dard2.1/FSharp.Control.AsyncSeq.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> 0/System.Reactive.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> netstandard2.0/System.Reactive.Linq.dll"
> #r 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
> mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
> ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
> /lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
> /lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
> 7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
> #r 
> @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
> rp.Json.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if !INTERACTIVE
> open Lib
> #endif
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Common
> open SpiralFileSystem.Operators
> open Microsoft.AspNetCore.SignalR.Client
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### sendJson
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let sendJson (port : int) (json : string) = async {
>     let host = "127.0.0.1"
>     let! portOpen = SpiralNetworking.test_port_open host port
>     if portOpen then
>         try
>             let connection = 
> HubConnectionBuilder().WithUrl($"http://{host}:{port}").Build()
>             do! connection.StartAsync () |> Async.AwaitTask
>             let! result = connection.InvokeAsync<string> ("ClientToServerMsg", 
> json) |> Async.AwaitTask
>             do! connection.StopAsync () |> Async.AwaitTask
>             trace Verbose (fun () -> $"Supervisor.sendJson / port: {port} / 
> json: {json |> SpiralSm.ellipsis_end 200} / result: {result |> Option.ofObj |> 
> Option.map (SpiralSm.ellipsis_end 200)}") _locals
>             return Some result
>         with ex ->
>             trace Critical (fun () -> $"Supervisor.sendJson / port: {port} / 
> json: {json |> SpiralSm.ellipsis_end 200} / ex: {ex |> 
> SpiralSm.format_exception}") _locals
>             return None
>     else
>         trace Debug (fun () -> $"Supervisor.sendJson / port: {port} / error: 
> port not open") _locals
>         return None
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### sendObj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let sendObj port obj =
>     obj
>     |> System.Text.Json.JsonSerializer.Serialize
>     |> sendJson port
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### VSCPos
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type VSCPos = {| line : int; character : int |}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### VSCRange
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type VSCRange = VSCPos * VSCPos
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RString
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RString = VSCRange * string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TracedError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TracedError = {| trace : string list; message : string |}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ClientErrorsRes
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ClientErrorsRes =
>     | FatalError of string
>     | TracedError of TracedError
>     | PackageErrors of {| uri : string; errors : RString list |}
>     | TokenizerErrors of {| uri : string; errors : RString list |}
>     | ParserErrors of {| uri : string; errors : RString list |}
>     | TypeErrors of {| uri : string; errors : RString list |}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### workspaceRoot
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let workspaceRoot = SpiralFileSystem.get_workspace_root ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### awaitCompiler
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let awaitCompiler port cancellationToken = async {
>     let host = "127.0.0.1"
>     let struct (ct, disposable) = cancellationToken |> 
> SpiralThreading.new_disposable_token
>     let! ct = ct |> SpiralAsync.merge_cancellation_token_with_default_async
> 
>     let compiler = MailboxProcessor.Start (fun inbox -> async {
>         let! availablePort = SpiralNetworking.get_available_port (Some 180) host
> port
>         if availablePort <> port then
>             inbox.Post (port, false)
>         else
>             let compilerPath =
>                 workspaceRoot </> "deps/The-Spiral-Language/The Spiral Language 
> 2/artifacts/bin/The Spiral Language 2/release"
>                 |> System.IO.Path.GetFullPath
> 
>             let dllPath = compilerPath </> "Spiral.dll"
> 
>             let! exitCode, result =
>                 SpiralRuntime.execution_options (fun x ->
>                     { x with
>                         l0 = $@"dotnet ""{dllPath}"" --port {availablePort} 
> --default-int i32 --default-float f64"
>                         l1 = Some ct
>                         l3 = Some (fun struct (_, line, _) -> async {
>                             if line |> SpiralSm.contains 
> $"System.IO.IOException: Failed to bind to address http://{host}:{port}: address
> already in use." then
>                                 inbox.Post (port, false)
> 
>                             if line |> SpiralSm.contains $"Server bound to: 
> http://localhost:{availablePort}" then
>                                 let rec loop retry = async {
>                                     do!
>                                         SpiralNetworking.wait_for_port_access 
> (Some 100) true host availablePort
>                                         |> Async.runWithTimeoutAsync 500
>                                         |> Async.Ignore
> 
>                                     let _locals () = $"port: {availablePort} / 
> retry: {retry} / {_locals ()}"
>                                     try
>                                         let pingObj = {| Ping = true |}
>                                         let! pingResult = pingObj |> sendObj 
> availablePort
>                                         trace Verbose (fun () -> 
> $"Supervisor.awaitCompiler / Ping / result: '%A{pingResult}'") _locals
> 
>                                         match pingResult with
>                                         | Some _ -> inbox.Post (availablePort, 
> true)
>                                         | None -> do! loop (retry + 1)
>                                     with ex ->
>                                         trace Verbose (fun () -> 
> $"Supervisor.awaitCompiler / Ping / ex: {ex |> SpiralSm.format_exception}") 
> _locals
>                                         do! loop (retry + 1)
>                                 }
>                                 do! loop 1
>                         })
>                         l6 = Some workspaceRoot
>                     }
>                 )
>                 |> SpiralRuntime.execute_with_options_async
> 
>             trace Debug (fun () -> $"Supervisor.awaitCompiler / exitCode: 
> {exitCode} / result: {result}") _locals
>             disposable.Dispose ()
>     }, ct)
> 
>     let! serverPort, managed = compiler.Receive ()
> 
>     let connection = 
> HubConnectionBuilder().WithUrl($"http://{host}:{serverPort}").Build ()
>     do! connection.StartAsync () |> Async.AwaitTask
> 
>     let event = Event<_> ()
>     let disposable' = connection.On<string> ("ServerToClientMsg", event.Trigger)
>     let stream =
>         FSharp.Control.AsyncSeq.unfoldAsync
>             (fun () -> async {
>                 let! msg = event.Publish |> Async.AwaitEvent
>                 return Some (msg |> 
> FSharp.Json.Json.deserialize<ClientErrorsRes>, ())
>             })
>             ()
> 
>     let disposable' =
>         new_disposable (fun () ->
>             async {
>                 disposable'.Dispose ()
>                 do! connection.StopAsync () |> Async.AwaitTask
>                 disposable.Dispose ()
>                 if managed
>                 then do!
>                     SpiralNetworking.wait_for_port_access (Some 100) false host 
> serverPort
>                     |> Async.runWithTimeoutAsync 1500
>                     |> Async.Ignore
>             }
>             |> Async.RunSynchronously
>         )
> 
>     return
>         serverPort,
>         stream,
>         ct,
>         disposable'
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### getFilePathFromUri
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let getFilePathFromUri uri =
>     match System.Uri.TryCreate (uri, System.UriKind.Absolute) with
>     | true, uri -> uri.AbsolutePath |> System.IO.Path.GetFullPath
>     | _ -> failwith "invalid uri"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### getCompilerPort
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let getCompilerPort () =
>     13805
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### serialize_obj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
>     let serializeObj obj =
>         try
>             obj
>             |> FSharp.Json.Json.serialize
>             |> SpiralSm.replace "\\\\" "\\"
>             |> SpiralSm.replace "\\r\\n" "\n"
>             |> SpiralSm.replace "\\n" "\n"
>         with ex ->
>             trace Critical (fun () -> "Supervisor.serialize_obj / obj: %A{obj}")
> _locals
>             ""
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Backend
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Backend =
>     | Fsharp
>     | Cuda
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### buildFile
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let buildFile backend timeout port cancellationToken path =
>     let rec loop retry = async {
>         let fullPath = path |> System.IO.Path.GetFullPath |> 
> SpiralFileSystem.normalize_path
>         let fileDir = fullPath |> System.IO.Path.GetDirectoryName
>         let fileName = fullPath |> System.IO.Path.GetFileNameWithoutExtension
>         let! code = fullPath |> SpiralFileSystem.read_all_text_async
> 
>         let stream, disposable = fileDir |> FileSystem.watchDirectory (fun _ -> 
> true)
>         use _ = disposable
> 
>         let struct (token, disposable) = SpiralThreading.new_disposable_token 
> cancellationToken
>         use _ = disposable
> 
>         let port = port |> Option.defaultWith getCompilerPort
>         let! serverPort, errors, ct, disposable = awaitCompiler port (Some 
> token)
>         use _ = disposable
> 
>         let outputFileName =
>             match backend with
>             | Fsharp -> $"{fileName}.fsx"
>             | Cuda -> $"{fileName}.py"
> 
>         let outputContentSeq =
>             stream
>             |> FSharp.Control.AsyncSeq.chooseAsync (function
>                 | _, (FileSystem.FileSystemChange.Changed (path, Some text))
>                     when (path |> System.IO.Path.GetFileName) = outputFileName
>                     ->
>                         // fileDir </> path |> 
> SpiralFileSystem.read_all_text_retry_async
>                         text |> Some |> Async.init
>                 | _ -> None |> Async.init
>             )
>             |> FSharp.Control.AsyncSeq.map (fun content ->
>                 Some (content |> SpiralSm.replace "\r\n" "\n"), None
>             )
> 
>         let printErrorData (data : {| uri : string; errors : RString list |}) =
>             let fileName = data.uri |> System.IO.Path.GetFileName
>             let errors =
>                 data.errors
>                 |> List.map snd
>                 |> SpiralSm.concat "\n"
>             $"{fileName}:\n{errors}"
> 
>         let errorsSeq =
>             errors
>             |> FSharp.Control.AsyncSeq.choose (fun error ->
>                 match error with
>                 | FatalError message ->
>                     Some (message, error)
>                 | TracedError data ->
>                     Some (data.message, error)
>                 | PackageErrors data when data.errors |> List.isEmpty |> not ->
>                     Some (data |> printErrorData, error)
>                 | TokenizerErrors data when data.errors |> List.isEmpty |> not 
> ->
>                     Some (data |> printErrorData, error)
>                 | ParserErrors data when data.errors |> List.isEmpty |> not ->
>                     Some (data |> printErrorData, error)
>                 | TypeErrors data when data.errors |> List.isEmpty |> not ->
>                     Some (data |> printErrorData, error)
>                 | _ -> None
>             )
>             |> FSharp.Control.AsyncSeq.map (fun (message, error) ->
>                 None, Some (message, error)
>             )
> 
>         let timerSeq =
>             500
>             |> FSharp.Control.AsyncSeq.intervalMs
>             |> FSharp.Control.AsyncSeq.map (fun _ -> None, None)
> 
>         let outputSeq =
>             [[ outputContentSeq; errorsSeq; timerSeq ]]
>             |> FSharp.Control.AsyncSeq.mergeAll
> 
>         let! outputChild =
>             ((None, [[]], 0), outputSeq)
>             ||> FSharp.Control.AsyncSeq.scan (
>                 fun (outputContentResult, errors, typeErrorCount) 
> (outputContent, error) ->
>                     trace Debug (fun () -> $"Supervisor.buildFile / 
> AsyncSeq.scan / path: {path} / errors: {errors |> serializeObj} / 
> outputContentResult: {outputContentResult} / typeErrorCount: {typeErrorCount} / 
> retry: {retry} / error: {error} / outputContent:\n{outputContent |> 
> Option.defaultValue System.String.Empty |> SpiralSm.ellipsis_end 1500}") _locals
>                     match outputContent, error with
>                     | Some outputContent, None -> Some outputContent, errors, 
> typeErrorCount
>                     | None, Some (_, FatalError "File main has a type error 
> somewhere in its path.") ->
>                         outputContentResult, errors, typeErrorCount + 1
>                     | None, Some error -> outputContentResult, error :: errors, 
> typeErrorCount
>                     | None, None when typeErrorCount >= 1 ->
>                         outputContentResult, errors, typeErrorCount + 1
>                     | _ -> outputContentResult, errors, typeErrorCount
>             )
>             |> FSharp.Control.AsyncSeq.takeWhileInclusive (fun (outputContent, 
> errors, typeErrorCount) ->
>                 trace Debug (fun () -> $"Supervisor.buildFile / 
> takeWhileInclusive / path: {path} / errors: {errors |> serializeObj} / 
> typeErrorCount: {typeErrorCount} / retry: {retry} / 
> outputContent:\n{outputContent |> Option.defaultValue System.String.Empty |> 
> SpiralSm.ellipsis_end 1500}") _locals
>     #if INTERACTIVE
>                 let errorWait = 2
>     #else
>                 let errorWait = 2
>     #endif
>                 match outputContent, errors with
>                 | None, [[]] when typeErrorCount > errorWait -> false
>                 | None, [[]] -> true
>                 | _ -> false
>             )
>             |> FSharp.Control.AsyncSeq.tryLast
>             |> Async.withCancellationToken ct
>             |> Async.catch
>             |> Async.runWithTimeoutAsync timeout
>             |> Async.StartChild
> 
>         // do! Async.Sleep 60
> 
>         let fullPathUri = fullPath |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
> 
>         let fileOpenObj = {| FileOpen = {| uri = fullPathUri; spiText = code |} 
> |}
>         let! _fileOpenResult = fileOpenObj |> sendObj serverPort
> 
>         // do! Async.Sleep 60
> 
>         let backendId =
>             match backend with
>             | Fsharp -> "Fsharp"
>             | Cuda -> "Python + Cuda"
>         let buildFileObj = {| BuildFile = {| uri = fullPathUri; backend = 
> backendId |} |}
>         let! _buildFileResult = buildFileObj |> sendObj serverPort
> 
>         let! result, typeErrorCount =
>             outputChild
>             |> Async.map (function
>                 | Some (Ok (Some (outputCode, errors, typeErrorCount))) ->
>                     (outputCode, errors |> List.distinct |> List.rev), 
> typeErrorCount
>                 | Some (Error ex) ->
>                     trace Critical (fun () -> $"Supervisor.buildFile / error: 
> {ex |> SpiralSm.format_exception} / retry: {retry}") _locals
>                     (None, [[]]), 0
>                 | _ -> (None, [[]]), 0
>             )
> 
>         match result with
>         | None, _ when typeErrorCount > 0 && retry = 0 ->
>             return! loop (retry + 1)
>         | _ ->
>             if fileDir |> SpiralSm.starts_with (workspaceRoot </> "target") then
>                 let fileDirUri = fileDir |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
>                 let fileDeleteObj = {| FileDelete = {| uris = [[| fileDirUri |]]
> |} |}
>                 let! _fileDeleteResult = fileDeleteObj |> sendObj serverPort
>                 ()
> 
>             let outputPath = fileDir </> outputFileName
>             return outputPath, result
>     }
>     loop 0
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SpiralInput
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SpiralInput =
>     | Spi of string * string option
>     | Spir of string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### persistCode
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let persistCode (input: {| backend : Backend option; input: SpiralInput; 
> packages: string [[]] |}) = async {
>     let targetDir = workspaceRoot </> "target/spiral_Eval"
> 
>     let packagesDir = targetDir </> "packages"
> 
>     let hashHex = $"%A{input.backend}%A{input.input}" |> SpiralCrypto.hash_text
> 
>     let packageDir = packagesDir </> hashHex
>     packageDir |> System.IO.Directory.CreateDirectory |> ignore
> 
>     let moduleName = "main"
> 
>     let spirModule, spiModule =
>         match input.input with
>         | Spi (_spi, Some _spir) -> true, true
>         | Spi (_spi, None) -> false, true
>         | Spir _spir -> true, false
>         |> fun (spir, spi) ->
>             (if spir then $"{moduleName}_real*-" else ""),
>             if spi then moduleName else ""
> 
>     let libLinkTargetPath = workspaceRoot </> "../spiral/lib/spiral"
>     let libLinkPath = packageDir </> "spiral"
> 
>     let packagesModule =
>         input.packages
>         |> Array.map (fun package ->
>             let path = workspaceRoot </> package
>             let packageName = path |> System.IO.Path.GetFileName
>             let libLinkPath = packageDir </> packageName
>             libLinkPath |> SpiralFileSystem.link_directory path
>             $"{packageName}-"
>         )
>         |> String.concat "\n    "
> 
>     let packageDir' =
>         if input.packages |> Array.isEmpty
>         then workspaceRoot </> "../spiral/lib"
>         else
>             libLinkPath |> SpiralFileSystem.link_directory libLinkTargetPath
>             packageDir
> 
>     let spiprojPath = packageDir </> "package.spiproj"
>     let spiprojCode =
>         $"""packageDir: {packageDir'}
> packages:
>     |core-
>     spiral-
>     {packagesModule}
> modules:
>     {spirModule}
>     {spiModule}
> """
>     do! spiprojCode |> SpiralFileSystem.write_all_text_exists spiprojPath
> 
>     let spirPath = packageDir </> $"{moduleName}_real.spir"
>     let spiPath = packageDir </> $"{moduleName}.spi"
> 
>     let spirCode, spiCode =
>         match input.input with
>         | Spi (spi, Some spir) -> Some spir, Some spi
>         | Spi (spi, None) -> None, Some spi
>         | Spir spir -> Some spir, None
> 
>     match spirCode with
>     | Some spir -> do! spir |> SpiralFileSystem.write_all_text_exists spirPath
>     | None -> ()
>     match spiCode with
>     | Some spi -> do! spi |> SpiralFileSystem.write_all_text_exists spiPath
>     | None -> ()
> 
>     let spiralPath =
>         match input.input with
>         | Spi _ -> spiPath
>         | Spir _ -> spirPath
>     match input.backend with
>     | None -> return spiralPath, None
>     | Some backend ->
>         let outputFileName =
>             let fileName =
>                 match input.input with
>                 | Spi _ -> moduleName
>                 | Spir _ -> $"{moduleName}_real"
>             match backend with
>             | Fsharp -> $"{fileName}.fsx"
>             | Cuda -> $"{fileName}.py"
>         let outputPath = packageDir </> outputFileName
>         if outputPath |> System.IO.File.Exists |> not
>         then return spiralPath, None
>         else
>             let! oldCode = spiralPath |> SpiralFileSystem.read_all_text_async
>             if oldCode <> (spiCode |> Option.defaultValue (spirCode |> 
> Option.defaultValue ""))
>             then return spiralPath, None
>             else
>                 let! outputCode = outputPath |> 
> SpiralFileSystem.read_all_text_async
>                 return spiralPath, Some (outputPath, outputCode |> 
> SpiralSm.replace "\r\n" "\n")
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### buildCode
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let buildCode backend packages isCache timeout cancellationToken input = async {
>     let! mainPath, outputCache =
>         persistCode {| input = input; backend = Some backend; packages = 
> packages |}
>     match outputCache with
>     | Some (outputPath, outputCode) when isCache -> return mainPath, 
> (outputPath, Some outputCode), [[]]
>     | _ ->
>         let! outputPath, (outputCode, errors) = mainPath |> buildFile backend 
> timeout None cancellationToken
>         return mainPath, (outputPath, outputCode), errors
> }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """inl app () =
>     console.write_line "text"
>     1i32
> 
> inl main () =
>     app
>     |> dyn
>     |> ignore
> """
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 15000 None
> |> Async.runWithTimeout 15000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         Some """let rec closure1 () () : unit =
>     let v0 : (string -> unit) = System.Console.WriteLine
>     let v1 : string = "text"
>     v0 v1
> and closure0 () () : int32 =
>     let v0 : unit = ()
>     let v1 : (unit -> unit) = closure1()
>     let v2 : unit = (fun () -> v1 (); v0) ()
>     1
> let v0 : (unit -> int32) = closure0()
> ()
> """,
>         [[]]
>     )
> )
> 
> ── [ 4.12s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:08 v #1 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:06 d #1 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:09 v #2 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:06 v #2 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:06 v #3 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:06 v #4 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:09 v #3 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #4 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #5 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #6 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #7 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #8 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #9 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #10 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #11 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #12 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #13 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #14 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #15 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #16 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #17 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #18 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #19 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #20 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #21 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #22 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #23 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #24 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #25 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #26 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #27 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #28 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:06 v #5 > Starting the Spiral Server. It is bound 
> to: http://localhost:13805
> │ 00:00:09 v #29 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #30 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:09 v #31 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:04 v #1 Supervisor.sendJson / port: 13805 / json: 
> {"Ping":true} / result:
> │ 00:00:04 v #2 Supervisor.awaitCompiler / Ping / result: 
> 'Some null' / port: 13805 / retry: 1
> │ 00:00:07 v #6 > Server bound to: http://localhost:13805
> │ 00:00:04 d #3 Supervisor.buildFile / takeWhileInclusive 
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:04 d #4 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:04 d #5 Supervisor.buildFile / takeWhileInclusive 
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:04 v #6 Supervisor.sendJson / port: 13805 / json: 
> {"FileOpen":{"spiText":"inl app () =\n    console.write_line \u0022text\u0022\n
> 1i32\n\ninl main 
> ...et/spiral_Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b9dc6
> 0aebd08a0d6/main.spi"}} / result:
> │ 00:00:04 v #7 Supervisor.sendJson / port: 13805 / json: 
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b
> 9dc60aebd08a0d6/main.spi"}} / result:
> │ 00:00:04 d #8 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:04 d #9 Supervisor.buildFile / takeWhileInclusive 
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:05 d #10 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:05 d #11 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:05 d #12 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:05 d #13 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:06 d #14 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:06 d #15 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:06 d #16 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:06 d #17 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:07 d #18 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ let rec closure1 () () : unit =
> │     let v0 : (string -> unit) = System.Console.WriteLine
> │     let v1 : string = "text"
> │     v0 v1
> │ and closure0 () () : int32 =
> │     let v0 : unit = ()
> │     let v1 : (unit -> unit) = closure1()
> │     let v2 : unit = (fun () -> v1 (); v0) ()
> │     1
> │ let v0 : (unit -> int32) = closure0()
> │ ()
> │ 
> │ 00:00:07 d #19 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c
> 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ let rec closure1 () () : unit =
> │     let v0 : (string -> unit) = System.Console.WriteLine
> │     let v1 : string = "text"
> │     v0 v1
> │ and closure0 () () : int32 =
> │     let v0 : unit = ()
> │     let v1 : (unit -> unit) = closure1()
> │     let v2 : unit = (fun () -> v1 (); v0) ()
> │     1
> │ let v0 : (unit -> int32) = closure0()
> │ ()
> │ 
> │ 00:00:07 v #20 Supervisor.sendJson / port: 13805 / json:
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6"
> ]}} / result:
> │ 00:00:12 v #32 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:07 d #21 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some
> │   (Some
> │      "let rec closure1 () () : unit =
> │     let v0 : (string -> unit) = System.Console.WriteLine
> │     let v1 : string = "text"
> │     v0 v1
> │ and closure0 () () : int32 =
> │     let v0 : unit = ()
> │     let v1 : (unit -> unit) = closure1()
> │     let v2 : unit = (fun () -> v1 (); v0) ()
> │     1
> │ let v0 : (unit -> int32) = closure0()
> │ ()
> │ ",
> │    [])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> ""
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         None,
>         [[ "Cannot find `main` in file main." ]]
>     )
> )
> 
> ── [ 3.69s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:12 v #33 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:10 d #7 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:13 v #34 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:10 v #8 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:10 v #9 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:10 v #10 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:13 v #35 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #36 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #37 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #38 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #39 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #40 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #41 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #42 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #43 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #44 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #45 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #46 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #47 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #48 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #49 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #50 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #51 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #52 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #53 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #54 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #55 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #56 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #57 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #58 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:10 v #11 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:13 v #59 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #60 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:13 v #61 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:07 v #22 Supervisor.sendJson / port: 13805 / json:
> {"Ping":true} / result:
> │ 00:00:07 v #23 Supervisor.awaitCompiler / Ping / result:
> 'Some null' / port: 13805 / retry: 1
> │ 00:00:11 v #12 > Server bound to: http://localhost:13805
> │ 00:00:07 d #24 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:07 d #25 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:07 d #26 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:07 v #27 Supervisor.sendJson / port: 13805 / json:
> {"FileOpen":{"spiText":"","uri":"file:///home/runner/work/polyglot/polyglot/targ
> et/spiral_Eval/packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb33db55c4
> d28170aa/main.spi"}} / result:
> │ 00:00:07 v #28 Supervisor.sendJson / port: 13805 / json:
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb3
> 3db55c4d28170aa/main.spi"}} / result:
> │ 00:00:08 d #29 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:08 d #30 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:08 d #31 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:08 d #32 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:09 d #33 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:09 d #34 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:09 d #35 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:09 d #36 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:10 d #37 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:10 d #38 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:10 d #39 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error: Some((Cannot find 
> `main` in file main., FatalError "Cannot find `main` in file main.")) / 
> outputContent:
> │ 
> │ 00:00:10 d #40 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9
> 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [
> │   [
> │     "Cannot find `main` in file main.",
> │     {
> │       "FatalError": "Cannot find `main` in file main."
> │     }
> │   ]
> │ ] / typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:10 v #41 Supervisor.sendJson / port: 13805 / json:
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa"
> ]}} / result:
> │ 00:00:16 v #62 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:10 d #42 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some (None, ["Cannot find `main` in file main."])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """inl main () =
>     1i32 / 0i32
> """
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         None,
>         [[ "An attempt to divide by zero has been detected at compile time." ]]
>     )
> )
> 
> ── [ 3.21s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:16 v #63 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:14 d #13 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:16 v #64 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:14 v #14 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:14 v #15 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:14 v #16 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:16 v #65 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #66 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #67 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #68 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #69 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #70 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #71 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #72 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #73 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #74 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #75 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #76 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #77 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #78 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #79 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:16 v #80 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #81 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #82 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #83 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #84 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #85 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #86 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #87 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:14 v #17 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:17 v #88 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #89 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #90 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:11 v #43 Supervisor.sendJson / port: 13805 / json:
> {"Ping":true} / result:
> │ 00:00:11 v #44 Supervisor.awaitCompiler / Ping / result:
> 'Some null' / port: 13805 / retry: 1
> │ 00:00:14 v #18 > Server bound to: http://localhost:13805
> │ 00:00:11 d #45 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:11 d #46 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:11 d #47 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:11 v #48 Supervisor.sendJson / port: 13805 / json:
> {"FileOpen":{"spiText":"inl main () =\n    1i32 / 
> 0i32\n","uri":"file:///home/runner/work/polyglot/p...et/spiral_Eval/packages/fef
> 9812d9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi"}} / 
> result:
> │ 00:00:11 v #49 Supervisor.sendJson / port: 13805 / json:
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4
> f27f88d2a5cdfb2/main.spi"}} / result:
> │ 00:00:12 d #50 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:12 d #51 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:12 d #52 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:12 d #53 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:13 d #54 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:13 d #55 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:13 d #56 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:13 d #57 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:14 d #58 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error: Some((An attempt 
> to divide by zero has been detected at compile time., TracedError
> │   { message = "An attempt to divide by zero has been detected
> at compile time."
> │     trace =
> │      ["Error trace on line: 1, column: 10 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ inl main () =
> │          ^
> │ ";
> │       "Error trace on line: 2, column: 5 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │     1i32 / 0i32
> │     ^
> │ "] })) / outputContent:
> │ 
> │ 00:00:14 d #59 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [
> │   [
> │     "An attempt to divide by zero has been detected at 
> compile time.",
> │     {
> │       "TracedError": {
> │         "message": "An attempt to divide by zero has been 
> detected at compile time.",
> │         "trace": [
> │           "Error trace on line: 1, column: 10 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ inl main () =
> │          ^
> │ ",
> │           "Error trace on line: 2, column: 5 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b
> 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │     1i32 / 0i32
> │     ^
> │ "
> │         ]
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:14 v #60 Supervisor.sendJson / port: 13805 / json:
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/fef9812d9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2"
> ]}} / result:
> │ 00:00:19 v #91 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:14 d #61 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some (None, ["An attempt to divide by zero has been detected 
> at compile time."])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """inl main () =
>     1 + ""
> """
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         None,
>         [[
>             "main.spi:
> Constraint satisfaction error.
> Got: string
> Fails to satisfy: number"
>         ]]
>     )
> )
> 
> ── [ 3.18s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:19 v #92 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 d #19 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:20 v #93 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #20 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:17 v #21 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:20 v #94 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #22 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:20 v #95 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #96 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #97 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #98 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #99 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #100 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #101 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #102 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #103 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #104 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #105 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #106 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #107 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #108 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #109 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #110 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #111 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #112 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #113 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #114 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #115 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #116 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #23 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:20 v #117 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #118 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #119 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:14 v #62 Supervisor.sendJson / port: 13805 / json:
> {"Ping":true} / result:
> │ 00:00:14 v #63 Supervisor.awaitCompiler / Ping / result:
> 'Some null' / port: 13805 / retry: 1
> │ 00:00:17 v #24 > Server bound to: http://localhost:13805
> │ 00:00:14 d #64 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:14 d #65 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:14 d #66 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:14 v #67 Supervisor.sendJson / port: 13805 / json:
> {"FileOpen":{"spiText":"inl main () =\n    1 \u002B 
> \u0022\u0022\n","uri":"file:///home/runner/work/...et/spiral_Eval/packages/c030f
> 84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi"}} / 
> result:
> │ 00:00:14 v #68 Supervisor.sendJson / port: 13805 / json:
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e365519
> 9e42df713504aa0/main.spi"}} / result:
> │ 00:00:15 d #69 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:15 d #70 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:15 d #71 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:15 d #72 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:16 d #73 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:16 d #74 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:16 d #75 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:16 d #76 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:17 d #77 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error: Some((File main 
> has a type error somewhere in its path., FatalError "File main has a type error 
> somewhere in its path.")) / outputContent:
> │ 
> │ 00:00:17 d #78 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 1 / retry: 0 / outputContent:
> │ 
> │ 00:00:17 d #79 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 1 / retry: 0 / error: Some((main.spi:
> │ Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number, TypeErrors
> │   { errors =
> │      [(({ character = 8
> │           line = 1 }, { character = 10
> │                         line = 1 }),
> │        "Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number")]
> │     uri =
> │      
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f
> 8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi" })) / 
> outputContent:
> │ 
> │ 00:00:17 d #80 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [
> │   [
> │     "main.spi:
> │ Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number",
> │     {
> │       "TypeErrors": {
> │         "errors": [
> │           [
> │             [
> │               {
> │                 "character": 8,
> │                 "line": 1
> │               },
> │               {
> │                 "character": 10,
> │                 "line": 1
> │               }
> │             ],
> │             "Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number"
> │           ]
> │         ],
> │         "uri": 
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f
> 8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi"
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 1 / retry: 0 / outputContent:
> │ 
> │ 00:00:22 v #120 networking.test_port_open / { port = 
> 13806; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 d #81 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:17 d #82 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 1 / error:  / outputContent:
> │ 
> │ 00:00:17 d #83 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:17 v #84 Supervisor.sendJson / port: 13805 / json:
> {"FileOpen":{"spiText":"inl main () =\n    1 \u002B 
> \u0022\u0022\n","uri":"file:///home/runner/work/...et/spiral_Eval/packages/c030f
> 84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi"}} / 
> result:
> │ 00:00:17 v #85 Supervisor.sendJson / port: 13805 / json:
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e365519
> 9e42df713504aa0/main.spi"}} / result:
> │ 00:00:17 d #86 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 1 / error: Some((main.spi:
> │ Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number, TypeErrors
> │   { errors =
> │      [(({ character = 8
> │           line = 1 }, { character = 10
> │                         line = 1 }),
> │        "Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number")]
> │     uri =
> │      
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f
> 8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi" })) / 
> outputContent:
> │ 
> │ 00:00:17 d #87 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef
> cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [
> │   [
> │     "main.spi:
> │ Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number",
> │     {
> │       "TypeErrors": {
> │         "errors": [
> │           [
> │             [
> │               {
> │                 "character": 8,
> │                 "line": 1
> │               },
> │               {
> │                 "character": 10,
> │                 "line": 1
> │               }
> │             ],
> │             "Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number"
> │           ]
> │         ],
> │         "uri": 
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f
> 8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi"
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:17 v #88 Supervisor.sendJson / port: 13805 / json:
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0"
> ]}} / result:
> │ 00:00:17 d #89 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ 00:00:22 v #121 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 d #90 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some (None, ["main.spi:
> │ Constraint satisfaction error.
> │ Got: string
> │ Fails to satisfy: number"])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """inl main () =
>     x + y
> """
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         None,
>         [[
>             "main.spi:
> Unbound variable: x.
> Unbound variable: y."
>         ]]
>     )
> )
> 
> ── [ 2.97s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:22 v #122 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 d #25 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:23 v #123 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #26 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:20 v #27 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:20 v #28 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:23 v #124 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #125 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #126 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #127 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #128 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #129 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #130 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #131 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #132 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #133 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #134 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #135 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #136 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #137 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #138 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #139 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #140 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #141 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #142 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #143 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #144 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #145 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #146 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #147 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #29 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:23 v #148 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #149 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #150 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:17 v #91 Supervisor.sendJson / port: 13805 / json:
> {"Ping":true} / result:
> │ 00:00:17 v #92 Supervisor.awaitCompiler / Ping / result:
> 'Some null' / port: 13805 / retry: 1
> │ 00:00:21 v #30 > Server bound to: http://localhost:13805
> │ 00:00:17 d #93 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:17 d #94 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:17 d #95 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:17 v #96 Supervisor.sendJson / port: 13805 / json:
> {"FileOpen":{"spiText":"inl main () =\n    x \u002B 
> y\n","uri":"file:///home/runner/work/polyglot/po...et/spiral_Eval/packages/6cdee
> c507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"}} / 
> result:
> │ 00:00:17 v #97 Supervisor.sendJson / port: 13805 / json:
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b15
> 1c767fde35dc5d1/main.spi"}} / result:
> │ 00:00:18 d #98 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:18 d #99 Supervisor.buildFile / takeWhileInclusive
> / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:18 d #100 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:18 d #101 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:19 d #102 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:19 d #103 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:19 d #104 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:19 d #105 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:20 d #106 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error: Some((File main 
> has a type error somewhere in its path., FatalError "File main has a type error 
> somewhere in its path.")) / outputContent:
> │ 
> │ 00:00:20 d #107 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 1 / retry: 0 / outputContent:
> │ 
> │ 00:00:20 d #108 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 1 / retry: 0 / error: Some((main.spi:
> │ Unbound variable: x.
> │ Unbound variable: y., TypeErrors
> │   { errors =
> │      [(({ character = 4
> │           line = 1 }, { character = 5
> │                         line = 1 }), "Unbound variable: x.");
> │       (({ character = 8
> │           line = 1 }, { character = 9
> │                         line = 1 }), "Unbound variable: y.")]
> │     uri =
> │      
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec50
> 7f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })) / 
> outputContent:
> │ 
> │ 00:00:20 d #109 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [
> │   [
> │     "main.spi:
> │ Unbound variable: x.
> │ Unbound variable: y.",
> │     {
> │       "TypeErrors": {
> │         "errors": [
> │           [
> │             [
> │               {
> │                 "character": 4,
> │                 "line": 1
> │               },
> │               {
> │                 "character": 5,
> │                 "line": 1
> │               }
> │             ],
> │             "Unbound variable: x."
> │           ],
> │           [
> │             [
> │               {
> │                 "character": 8,
> │                 "line": 1
> │               },
> │               {
> │                 "character": 9,
> │                 "line": 1
> │               }
> │             ],
> │             "Unbound variable: y."
> │           ]
> │         ],
> │         "uri": 
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec50
> 7f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 1 / retry: 0 / outputContent:
> │ 
> │ 00:00:25 v #151 networking.test_port_open / { port = 
> 13806; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 d #110 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:20 d #111 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 1 / error:  / outputContent:
> │ 
> │ 00:00:20 d #112 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:20 v #113 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl main () =\n    x \u002B 
> y\n","uri":"file:///home/runner/work/polyglot/po...et/spiral_Eval/packages/6cdee
> c507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"}} / 
> result:
> │ 00:00:20 v #114 Supervisor.sendJson / port: 13805 / 
> json: 
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b15
> 1c767fde35dc5d1/main.spi"}} / result:
> │ 00:00:20 d #115 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 1 / error: Some((main.spi:
> │ Unbound variable: x.
> │ Unbound variable: y., TypeErrors
> │   { errors =
> │      [(({ character = 4
> │           line = 1 }, { character = 5
> │                         line = 1 }), "Unbound variable: x.");
> │       (({ character = 8
> │           line = 1 }, { character = 9
> │                         line = 1 }), "Unbound variable: y.")]
> │     uri =
> │      
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec50
> 7f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })) / 
> outputContent:
> │ 
> │ 00:00:20 d #116 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba
> 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [
> │   [
> │     "main.spi:
> │ Unbound variable: x.
> │ Unbound variable: y.",
> │     {
> │       "TypeErrors": {
> │         "errors": [
> │           [
> │             [
> │               {
> │                 "character": 4,
> │                 "line": 1
> │               },
> │               {
> │                 "character": 5,
> │                 "line": 1
> │               }
> │             ],
> │             "Unbound variable: x."
> │           ],
> │           [
> │             [
> │               {
> │                 "character": 8,
> │                 "line": 1
> │               },
> │               {
> │                 "character": 9,
> │                 "line": 1
> │               }
> │             ],
> │             "Unbound variable: y."
> │           ]
> │         ],
> │         "uri": 
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec50
> 7f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:20 v #117 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1"
> ]}} / result:
> │ 00:00:20 d #118 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ 00:00:25 v #152 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 d #119 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some (None, ["main.spi:
> │ Unbound variable: x.
> │ Unbound variable: y."])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """
> inl main () =
>     real
>         inl unbox_real forall a. (obj : a) : a =
>             typecase obj with
>             | _ => obj
>         unbox_real ()
>     ()
> """
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         None,
>         [[ "Cannot apply a forall with a term." ]]
>     )
> )
> 
> ── [ 3.22s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:25 v #153 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 d #31 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:26 v #154 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #155 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #32 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:23 v #33 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:23 v #34 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:26 v #156 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #157 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #158 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #159 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #160 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #161 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #162 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #163 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #164 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #165 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #166 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #167 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #168 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #169 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #170 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #171 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #172 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #173 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #174 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #175 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #176 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #177 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #178 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #179 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 v #35 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:26 v #180 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #181 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #182 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:20 v #120 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:20 v #121 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:24 v #36 > Server bound to: http://localhost:13805
> │ 00:00:20 d #122 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:20 d #123 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:20 d #124 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:20 v #125 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"\ninl main () =\n    real\n        inl unbox_real 
> forall a. (obj : a) : a 
> =\...et/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117eec
> 78e740987f29a/main.spi"}} / result:
> │ 00:00:20 v #126 Supervisor.sendJson / port: 13805 / 
> json: 
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117e
> ec78e740987f29a/main.spi"}} / result:
> │ 00:00:21 d #127 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:21 d #128 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:21 d #129 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:21 d #130 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:22 d #131 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:22 d #132 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:22 d #133 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:22 d #134 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:23 d #135 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error: Some((Cannot apply
> a forall with a term., TracedError
> │   { message = "Cannot apply a forall with a term."
> │     trace =
> │      ["Error trace on line: 2, column: 10 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ inl main () =
> │          ^
> │ ";
> │       "Error trace on line: 4, column: 9 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │         inl unbox_real forall a. (obj : a) : a =
> │         ^
> │ ";
> │       "Error trace on line: 7, column: 9 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │         unbox_real ()
> │         ^
> │ "] })) / outputContent:
> │ 
> │ 00:00:23 d #136 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [
> │   [
> │     "Cannot apply a forall with a term.",
> │     {
> │       "TracedError": {
> │         "message": "Cannot apply a forall with a term.",
> │         "trace": [
> │           "Error trace on line: 2, column: 10 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ inl main () =
> │          ^
> │ ",
> │           "Error trace on line: 4, column: 9 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │         inl unbox_real forall a. (obj : a) : a =
> │         ^
> │ ",
> │           "Error trace on line: 7, column: 9 in module: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af
> 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │         unbox_real ()
> │         ^
> │ "
> │         ]
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:23 v #137 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a"
> ]}} / result:
> │ 00:00:29 v #183 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:23 d #138 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some (None, ["Cannot apply a forall with a term."])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """
> inl main () =
>     real
>         inl unbox_real forall a. (obj : a) : a =
>             typecase obj with
>             | _ => obj
>         unbox_real `i32 1
> """
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         None,
>         [[ "The main function should not have a forall." ]]
>     )
> )
> 
> ── [ 3.23s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:29 v #184 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 d #37 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:29 v #185 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:26 v #38 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:26 v #39 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:26 v #40 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:29 v #186 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #187 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #188 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #189 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #190 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #191 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #192 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #193 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #194 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #195 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #196 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #197 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #198 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #199 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #200 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #201 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #202 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #203 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #204 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #205 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #206 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #207 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #208 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:27 v #41 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:29 v #209 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #210 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 v #211 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:24 v #139 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:24 v #140 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:27 v #42 > Server bound to: http://localhost:13805
> │ 00:00:24 d #141 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:24 d #142 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:24 d #143 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:24 v #144 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"\ninl main () =\n    real\n        inl unbox_real 
> forall a. (obj : a) : a 
> =\...et/spiral_Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad11
> 8bad793251c4f/main.spi"}} / result:
> │ 00:00:24 v #145 Supervisor.sendJson / port: 13805 / 
> json: 
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad
> 118bad793251c4f/main.spi"}} / result:
> │ 00:00:24 d #146 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:24 d #147 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:25 d #148 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:25 d #149 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:25 d #150 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:25 d #151 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:26 d #152 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:26 d #153 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:26 d #154 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error: Some((The main 
> function should not have a forall., TracedError { message = "The main function 
> should not have a forall."
> │               trace = [] })) / outputContent:
> │ 
> │ 00:00:26 d #155 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79
> 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [
> │   [
> │     "The main function should not have a forall.",
> │     {
> │       "TracedError": {
> │         "message": "The main function should not have a 
> forall.",
> │         "trace": []
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:26 v #156 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f"
> ]}} / result:
> │ 00:00:32 v #212 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> reset by peer) }
> │ 00:00:26 d #157 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some (None, ["The main function should not have a forall."])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """
> inl init_series start end inc =
>     inl total : f64 = conv ((end - start) / inc) + 1
>     listm.init total (conv >> (*) inc >> (+) start) : list f64
> 
> type integration = (f64 -> f64) -> f64 -> f64 -> f64
> 
> inl integral dt : integration =
>     fun f a b =>
>         init_series (a + dt / 2) (b - dt / 2) dt
>         |> listm.map (f >> (*) dt)
>         |> listm.fold (+) 0
> 
> inl main () =
>     integral 0.1 (fun x => x ** 2) 0 1
> """
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         Some "0.3325000000000001\n",
>         [[]]
>     )
> )
> 
> ── [ 3.33s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:32 v #213 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:29 d #43 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:32 v #214 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:30 v #44 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:30 v #45 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:30 v #46 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:32 v #215 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #216 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #217 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #218 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #219 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #220 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #221 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #222 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #223 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #224 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #225 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #226 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #227 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #228 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #229 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #230 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #231 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #232 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #233 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #234 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #235 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #236 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #237 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:30 v #47 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:32 v #238 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:32 v #239 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:27 v #158 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:27 v #159 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:30 v #48 > Server bound to: http://localhost:13805
> │ 00:00:27 d #160 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:27 d #161 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:27 d #162 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:27 v #163 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n    inl total :
> f64 = conv ((end - 
> start)...et/spiral_Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd
> 56ac7f0327106f1db/main.spi"}} / result:
> │ 00:00:27 v #164 Supervisor.sendJson / port: 13805 / 
> json: 
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd56
> ac7f0327106f1db/main.spi"}} / result:
> │ 00:00:27 d #165 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:27 d #166 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:28 d #167 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:28 d #168 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:28 d #169 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:28 d #170 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:29 d #171 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:29 d #172 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:29 d #173 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:29 d #174 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:29 d #175 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 0.3325000000000001
> │ 
> │ 00:00:29 d #176 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d
> 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 0.3325000000000001
> │ 
> │ 00:00:29 v #177 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db"
> ]}} / result:
> │ 00:00:35 v #240 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:30 d #178 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some (Some "0.3325000000000001
> │ ", [])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """
> inl init_series start end inc =
>     inl total : f64 = conv ((end - start) / inc) + 1
>     listm.init total (conv >> (*) inc >> (+) start) : list f64
> 
> type integration = (f64 -> f64) -> f64 -> f64 -> f64
> 
> inl integral dt : integration =
>     fun f a b =>
>         init_series (a + dt / 2) (b - dt / 2) dt
>         |> listm.map (f >> (*) dt)
>         |> listm.fold (+) 0
> 
> inl main () =
>     integral 0.1 (fun x => x ** 2) 0 1
> """
> |> fun code -> Spi (code, None)
> |> buildCode Cuda [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         Some @"kernel = r""""""
> """"""
> class static_array():
>     def __init__(self, length):
>         self.ptr = [[]]
>         for _ in range(length):
>             self.ptr.append(None)
> 
>     def __getitem__(self, index):
>         assert 0 <= index < len(self.ptr), ""The get index needs to be in 
> range.""
>         return self.ptr[[index]]
>     
>     def __setitem__(self, index, value):
>         assert 0 <= index < len(self.ptr), ""The set index needs to be in 
> range.""
>         self.ptr[[index]] = value
> 
> class static_array_list(static_array):
>     def __init__(self, length):
>         super().__init__(length)
>         self.length = 0
> 
>     def __getitem__(self, index):
>         assert 0 <= index < self.length, ""The get index needs to be in range.""
>         return self.ptr[[index]]
>     
>     def __setitem__(self, index, value):
>         assert 0 <= index < self.length, ""The set index needs to be in range.""
>         self.ptr[[index]] = value
> 
>     def push(self,value):
>         assert (self.length < len(self.ptr)), ""The length before pushing has to
> be less than the maximum length of the array.""
>         self.ptr[[self.length]] = value
>         self.length += 1
> 
>     def pop(self):
>         assert (0 < self.length), ""The length before popping has to be greater 
> than 0.""
>         self.length -= 1
>         return self.ptr[[self.length]]
> 
>     def unsafe_set_length(self,i):
>         assert 0 <= i <= len(self.ptr), ""The new length has to be in range.""
>         self.length = i
> 
> class dynamic_array(static_array): 
>     pass
> 
> class dynamic_array_list(static_array_list):
>     def length_(self): return self.length
> 
> import cupy as cp
> import numpy as np
> from dataclasses import dataclass
> from typing import NamedTuple, Union, Callable, Tuple
> i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = int; u32 = int; u64 =
> int; f32 = float; f64 = float; char = str; string = str
> cuda = False
> 
> def main_body():
>     return 0.3325000000000001
> 
> def main():
>     r = main_body()
>     if cuda: cp.cuda.get_current_stream().synchronize() # This line is here so 
> the `__trap()` calls on the kernel aren't missed.
>     return r
> 
> if __name__ == '__main__': result = main(); None if result is None else 
> print(result)
> ",
>         [[]]
>     )
> )
> 
> ── [ 3.13s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:35 v #241 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:33 d #49 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:36 v #242 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:33 v #50 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:36 v #243 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:33 v #51 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:33 v #52 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:36 v #244 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #245 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #246 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #247 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #248 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #249 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #250 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #251 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #252 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #253 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #254 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #255 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #256 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #257 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #258 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #259 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #260 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #261 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #262 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #263 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #264 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #265 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:33 v #53 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:36 v #266 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #267 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:30 v #179 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:30 v #180 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:33 v #54 > Server bound to: http://localhost:13805
> │ 00:00:30 d #181 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:30 d #182 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:30 d #183 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:30 v #184 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n    inl total :
> f64 = conv ((end - 
> start)...et/spiral_Eval/packages/ca288d6928a8e761855210f25f97fdc056ee1f21be4a24b
> 26e8533ec368831c8/main.spi"}} / result:
> │ 00:00:30 v #185 Supervisor.sendJson / port: 13805 / 
> json: {"BuildFile":{"backend":"Python \u002B 
> Cuda","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packa
> ges/ca288d6928a8e761855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi"}}
> / result:
> │ 00:00:31 d #186 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:31 d #187 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:31 d #188 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:31 d #189 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:32 d #190 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:32 d #191 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:32 d #192 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:32 d #193 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:33 d #194 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ kernel = r"""
> │ """
> │ class static_array():
> │     def __init__(self, length):
> │         self.ptr = []
> │         for _ in range(length):
> │             self.ptr.append(None)
> │ 
> │     def __getitem__(self, index):
> │         assert 0 <= index < len(self.ptr), "The get index 
> needs to be in range."
> │         return self.ptr[index]
> │     
> │     def __setitem__(self, index, value):
> │         assert 0 <= index < len(self.ptr), "The set index 
> needs to be in range."
> │         self.ptr[index] = value
> │ 
> │ class static_array_list(static_array):
> │     def __init__(self, length):
> │         super().__init__(length)
> │         self.length = 0
> │ 
> │     def __getitem__(self, index):
> │         assert 0 <= index < self.length, "The get index needs
> to be in range."
> │         return self.ptr[index]
> │     
> │     d...nge."
> │         self.length = i
> │ 
> │ class dynamic_array(static_array): 
> │     pass
> │ 
> │ class dynamic_array_list(static_array_list):
> │     def length_(self): return self.length
> │ 
> │ import cupy as cp
> │ import numpy as np
> │ from dataclasses import dataclass
> │ from typing import NamedTuple, Union, Callable, Tuple
> │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = 
> int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str
> │ cuda = False
> │ 
> │ def main_body():
> │     return 0.3325000000000001
> │ 
> │ def main():
> │     r = main_body()
> │     if cuda: cp.cuda.get_current_stream().synchronize() # 
> This line is here so the `__trap()` calls on the kernel aren't missed.
> │     return r
> │ 
> │ if __name__ == '__main__': result = main(); None if result is
> None else print(result)
> │ 
> │ 00:00:33 d #195 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761
> 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ kernel = r"""
> │ """
> │ class static_array():
> │     def __init__(self, length):
> │         self.ptr = []
> │         for _ in range(length):
> │             self.ptr.append(None)
> │ 
> │     def __getitem__(self, index):
> │         assert 0 <= index < len(self.ptr), "The get index 
> needs to be in range."
> │         return self.ptr[index]
> │     
> │     def __setitem__(self, index, value):
> │         assert 0 <= index < len(self.ptr), "The set index 
> needs to be in range."
> │         self.ptr[index] = value
> │ 
> │ class static_array_list(static_array):
> │     def __init__(self, length):
> │         super().__init__(length)
> │         self.length = 0
> │ 
> │     def __getitem__(self, index):
> │         assert 0 <= index < self.length, "The get index needs
> to be in range."
> │         return self.ptr[index]
> │     
> │     d...nge."
> │         self.length = i
> │ 
> │ class dynamic_array(static_array): 
> │     pass
> │ 
> │ class dynamic_array_list(static_array_list):
> │     def length_(self): return self.length
> │ 
> │ import cupy as cp
> │ import numpy as np
> │ from dataclasses import dataclass
> │ from typing import NamedTuple, Union, Callable, Tuple
> │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = 
> int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str
> │ cuda = False
> │ 
> │ def main_body():
> │     return 0.3325000000000001
> │ 
> │ def main():
> │     r = main_body()
> │     if cuda: cp.cuda.get_current_stream().synchronize() # 
> This line is here so the `__trap()` calls on the kernel aren't missed.
> │     return r
> │ 
> │ if __name__ == '__main__': result = main(); None if result is
> None else print(result)
> │ 
> │ 00:00:33 v #196 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/ca288d6928a8e761855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8"
> ]}} / result:
> │ 00:00:38 v #268 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:33 d #197 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some
> │   (Some
> │      "kernel = r"""
> │ """
> │ class static_array():
> │     def __init__(self, length):
> │         self.ptr = []
> │         for _ in range(length):
> │             self.ptr.append(None)
> │ 
> │     def __getitem__(self, index):
> │         assert 0 <= index < len(self.ptr), "The get index 
> needs to be in range."
> │         return self.ptr[index]
> │     
> │     def __setitem__(self, index, value):
> │         assert 0 <= index < len(self.ptr), "The set index 
> needs to be in range."
> │         self.ptr[index] = value
> │ 
> │ class static_array_list(static_array):
> │     def __init__(self, length):
> │         super().__init__(length)
> │         self.length = 0
> │ 
> │     def __getitem__(self, index):
> │         assert 0 <= index < self.length, "The get index needs
> to be in range."
> │         return self.ptr[index]
> │     
> │     def __setitem__(self, index, value):
> │         assert 0 <= index < self.length, "The set index needs
> to be in range."
> │         self.ptr[index] = value
> │ 
> │     def push(self,value):
> │         assert (self.length < len(self.ptr)), "The length 
> before pushing has to be less than the maximum length of the array."
> │         self.ptr[self.length] = value
> │         self.length += 1
> │ 
> │     def pop(self):
> │         assert (0 < self.length), "The length before popping 
> has to be greater than 0."
> │         self.length -= 1
> │         return self.ptr[self.length]
> │ 
> │     def unsafe_set_length(self,i):
> │         assert 0 <= i <= len(self.ptr), "The new length has 
> to be in range."
> │         self.length = i
> │ 
> │ class dynamic_array(static_array): 
> │     pass
> │ 
> │ class dynamic_array_list(static_array_list):
> │     def length_(self): return self.length
> │ 
> │ import cupy as cp
> │ import numpy as np
> │ from dataclasses import dataclass
> │ from typing import NamedTuple, Union, Callable, Tuple
> │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = 
> int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str
> │ cuda = False
> │ 
> │ def main_body():
> │     return 0.3325000000000001
> │ 
> │ def main():
> │     r = main_body()
> │     if cuda: cp.cuda.get_current_stream().synchronize() # 
> This line is here so the `__trap()` calls on the kernel aren't missed.
> │     return r
> │ 
> │ if __name__ == '__main__': result = main(); None if result is
> None else print(result)
> │ ",
> │    [])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """
> inl init_series start end inc =
>     inl total : f64 = conv ((end - start) / inc) + 1
>     listm.init total (conv >> (*) inc >> (+) start) : list f64
> 
> type integration = (f64 -> f64) -> f64 -> f64 -> f64
> 
> inl integral dt : integration =
>     fun f a b =>
>         init_series (a + dt / 2) (b - dt / 2) dt
>         |> listm.map (f >> (*) dt)
>         |> listm.fold (+) 0
> 
> inl main () =
>     integral 0.01 (fun x => x ** 2) 0 1
> """
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         Some "0.33332500000000004\n",
>         [[]]
>     )
> )
> // |> _assertEqual None
> // |> fun x -> printfn $"{x.ToDisplayString ()}"
> 
> ── [ 3.19s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:38 v #269 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 d #55 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:39 v #270 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #56 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:36 v #57 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:36 v #58 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:39 v #271 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #272 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #273 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #274 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #275 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #276 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #277 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #278 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #279 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #280 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #281 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #282 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #283 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #284 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #285 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #286 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #287 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #288 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #289 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #290 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #291 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #292 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #293 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 v #59 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:39 v #294 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #295 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:33 v #198 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:33 v #199 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:37 v #60 > Server bound to: http://localhost:13805
> │ 00:00:33 d #200 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:33 d #201 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:33 d #202 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:33 v #203 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n    inl total :
> f64 = conv ((end - 
> start)...et/spiral_Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e77
> 97ce64875a41451f4/main.spi"}} / result:
> │ 00:00:33 v #204 Supervisor.sendJson / port: 13805 / 
> json: 
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e7797
> ce64875a41451f4/main.spi"}} / result:
> │ 00:00:34 d #205 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:34 d #206 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:34 d #207 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:34 d #208 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:35 d #209 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:35 d #210 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:35 d #211 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:35 d #212 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:36 d #213 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 0.33332500000000004
> │ 
> │ 00:00:36 d #214 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce
> 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 0.33332500000000004
> │ 
> │ 00:00:36 v #215 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4"
> ]}} / result:
> │ 00:00:42 v #296 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:36 d #216 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some (Some "0.33332500000000004
> │ ", [])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """inl rec main () = main"""
> |> fun code -> Spi (code, None)
> |> buildCode Fsharp [[||]] false 10000 None
> |> Async.runWithTimeout 10000
> |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> 
> List.map fst)
> |> _assertEqual (
>     Some (
>         None,
>         [[
>             "main.spi:
> Recursive metavariables are not allowed. A metavar cannot be unified with a type
> that has itself.
> Got:      'a
> Expected: () -> 'a"
>         ]]
>     )
> )
> // |> _assertEqual None
> // |> fun x -> printfn $"{x.ToDisplayString ()}"
> 
> ── [ 2.98s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:42 v #297 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 d #61 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:42 v #298 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 v #62 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:39 v #63 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:39 v #64 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:42 v #299 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #300 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #301 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #302 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #303 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #304 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #305 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #306 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #307 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #308 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #309 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #310 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #311 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #312 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #313 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #314 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #315 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #316 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #317 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #318 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #319 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #320 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #321 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:40 v #65 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:42 v #322 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #323 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #324 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:37 v #217 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:37 v #218 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:40 v #66 > Server bound to: http://localhost:13805
> │ 00:00:37 d #219 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:37 d #220 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:37 d #221 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:37 v #222 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl rec main () = 
> main","uri":"file:///home/runner/work/polyglot/polyglot/ta...et/spiral_Eval/pack
> ages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"}
> } / result:
> │ 00:00:37 v #223 Supervisor.sendJson / port: 13805 / 
> json: 
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8
> ccd4581901ee2b7/main.spi"}} / result:
> │ 00:00:37 d #224 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:37 d #225 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:38 d #226 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:38 d #227 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:38 d #228 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:38 d #229 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:39 d #230 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
> │ 
> │ 00:00:39 d #231 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 0 / outputContent:
> │ 
> │ 00:00:39 d #232 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 0 / error: Some((File main 
> has a type error somewhere in its path., FatalError "File main has a type error 
> somewhere in its path.")) / outputContent:
> │ 
> │ 00:00:39 d #233 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 1 / retry: 0 / outputContent:
> │ 
> │ 00:00:39 d #234 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 1 / retry: 0 / error: Some((main.spi:
> │ Recursive metavariables are not allowed. A metavar cannot be 
> unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a, TypeErrors
> │   { errors =
> │      [(({ character = 18
> │           line = 0 }, { character = 22
> │                         line = 0 }),
> │        "Recursive metavariables are not allowed. A metavar 
> cannot be unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a")]
> │     uri =
> │      
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123
> fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })) / 
> outputContent:
> │ 
> │ 00:00:39 d #235 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [
> │   [
> │     "main.spi:
> │ Recursive metavariables are not allowed. A metavar cannot be 
> unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a",
> │     {
> │       "TypeErrors": {
> │         "errors": [
> │           [
> │             [
> │               {
> │                 "character": 18,
> │                 "line": 0
> │               },
> │               {
> │                 "character": 22,
> │                 "line": 0
> │               }
> │             ],
> │             "Recursive metavariables are not allowed. A 
> metavar cannot be unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a"
> │           ]
> │         ],
> │         "uri": 
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123
> fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 1 / retry: 0 / outputContent:
> │ 
> │ 00:00:44 v #325 networking.test_port_open / { port = 
> 13806; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 d #236 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:39 d #237 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 1 / error:  / outputContent:
> │ 
> │ 00:00:39 d #238 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:39 v #239 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl rec main () = 
> main","uri":"file:///home/runner/work/polyglot/polyglot/ta...et/spiral_Eval/pack
> ages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"}
> } / result:
> │ 00:00:39 v #240 Supervisor.sendJson / port: 13805 / 
> json: 
> {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
> ot/target/spiral_Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8
> ccd4581901ee2b7/main.spi"}} / result:
> │ 00:00:39 d #241 Supervisor.buildFile / AsyncSeq.scan / 
> path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / 
> outputContentResult:  / typeErrorCount: 0 / retry: 1 / error: Some((main.spi:
> │ Recursive metavariables are not allowed. A metavar cannot be 
> unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a, TypeErrors
> │   { errors =
> │      [(({ character = 18
> │           line = 0 }, { character = 22
> │                         line = 0 }),
> │        "Recursive metavariables are not allowed. A metavar 
> cannot be unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a")]
> │     uri =
> │      
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123
> fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })) / 
> outputContent:
> │ 
> │ 00:00:39 d #242 Supervisor.buildFile / 
> takeWhileInclusive / path: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9
> 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [
> │   [
> │     "main.spi:
> │ Recursive metavariables are not allowed. A metavar cannot be 
> unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a",
> │     {
> │       "TypeErrors": {
> │         "errors": [
> │           [
> │             [
> │               {
> │                 "character": 18,
> │                 "line": 0
> │               },
> │               {
> │                 "character": 22,
> │                 "line": 0
> │               }
> │             ],
> │             "Recursive metavariables are not allowed. A 
> metavar cannot be unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a"
> │           ]
> │         ],
> │         "uri": 
> "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123
> fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"
> │       }
> │     }
> │   ]
> │ ] / typeErrorCount: 0 / retry: 1 / outputContent:
> │ 
> │ 00:00:39 v #243 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7"
> ]}} / result:
> │ 00:00:39 d #244 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ 00:00:45 v #326 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:39 d #245 FileSystem.watchWithFilter / Disposing 
> watch stream / filter: FileName, LastWrite
> │ Some
> │   (None,
> │    ["main.spi:
> │ Recursive metavariables are not allowed. A metavar cannot be 
> unified with a type that has itself.
> │ Got:      'a
> │ Expected: () -> 'a"])
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## getFileTokenRange
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let getFileTokenRange port cancellationToken path = async {
>     let fullPath = path |> System.IO.Path.GetFullPath
>     let! code = fullPath |> SpiralFileSystem.read_all_text_async
>     let lines = code |> SpiralSm.split "\n"
> 
>     let struct (token, disposable) = SpiralThreading.new_disposable_token 
> cancellationToken
>     use _ = disposable
> 
>     let port = port |> Option.defaultWith getCompilerPort
>     let! serverPort, _errors, ct, disposable = awaitCompiler port (Some token)
>     use _ = disposable
> 
>     let fullPathUri = fullPath |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
> 
>     let fileOpenObj = {| FileOpen = {| uri = fullPathUri; spiText = code |} |}
>     let! _fileOpenResult = fileOpenObj |> sendObj serverPort
> 
>     // do! Async.Sleep 60
> 
>     let fileTokenRangeObj =
>         {|
>             FileTokenRange =
>                 {|
>                     uri = fullPathUri
>                     range =
>                         [[|
>                             {|
>                                 line = 0
>                                 character = 0
>                             |}
>                             {|
>                                 line = lines.Length - 1
>                                 character = lines.[[lines.Length - 1]].Length
>                             |}
>                         |]]
>                 |}
>         |}
>     let! fileTokenRangeResult =
>         fileTokenRangeObj
>         |> sendObj serverPort
>         |> Async.withCancellationToken ct
> 
>     let fileDir = fullPath |> System.IO.Path.GetDirectoryName
>     if fileDir |> SpiralSm.starts_with (workspaceRoot </> "target") then
>         let fileDirUri = fileDir |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
>         let fileDeleteObj = {| FileDelete = {| uris = [[| fileDirUri |]] |} |}
>         let! _fileDeleteResult = fileDeleteObj |> sendObj serverPort
>         ()
> 
>     return fileTokenRangeResult |> Option.map FSharp.Json.Json.deserialize<int 
> array>
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## getCodeTokenRange
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let getCodeTokenRange cancellationToken code = async {
>     let! mainPath, _ =
>         persistCode {| input = Spi (code, None); backend = None; packages = 
> [[||]] |}
> 
>     let codeDir = mainPath |> System.IO.Path.GetDirectoryName
>     let tokensPath = codeDir </> "tokens.json"
>     let! tokens = async {
>         if tokensPath |> System.IO.File.Exists |> not
>         then return None
>         else
>             let! text = tokensPath |> SpiralFileSystem.read_all_text_async
> 
>             return
>                 if text.Length > 2
>                 then text |> FSharp.Json.Json.deserialize<int array> |> Some
>                 else None
>     }
>     match tokens with
>     | Some tokens ->
>         return tokens |> Some
>     | None -> return! mainPath |> getFileTokenRange None cancellationToken
> }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """inl main () = ()"""
> |> getCodeTokenRange None
> |> Async.runWithTimeout 10000
> |> Option.flatten
> |> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; 
> 8; 0; 0; 2; 1; 4; 0; 0;
> 2; 1; 8; 0; 0; 1; 1; 8; 0 |]])
> 
> ── [ 1.39s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:45 v #327 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 d #67 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:45 v #328 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #68 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:42 v #69 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:42 v #70 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:45 v #329 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #330 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #331 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #332 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #333 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #334 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #335 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #336 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #337 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #338 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #339 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #340 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #341 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #342 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #343 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #344 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #345 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #346 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #347 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #348 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #349 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #350 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #351 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:43 v #71 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:45 v #352 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #353 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #354 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #355 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:40 v #246 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:40 v #247 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:43 v #72 > Server bound to: http://localhost:13805
> │ 00:00:40 v #248 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl main () = 
> ()","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/package
> s/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} /
> result:
> │ 00:00:40 v #249 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileTokenRange":{"range":[{"character":0,"line":0},{"character":16,"line":0}],
> "uri":"file:///home/...et/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7d
> a4570c1b757721164d86f19feaf821e/main.spi"}} / result: Some([
> │   0,
> │   0,
> │   3,
> │   7,
> │   0,
> │   0,
> │   4,
> │   4,
> │   0,
> │   0,
> │   0,
> │   5,
> │   1,
> │   8,
> │   0,
> │   0,
> │   1,
> │   1,
> │   8,
> │   0,
> │   0,
> │   2,
> │   1,
> │   4,
> │   0,
> │   0,
> │   2,
> │   1,
> │   8,
> │   0,
> │   0,
> │   1,
> │   1,
> │   8,
> │   0
> │ ])
> │ 00:00:40 v #250 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e"
> ]}} / result:
> │ 00:00:46 v #356 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; 
> 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 8; 0; 0; 1; 1; 8; 0|]
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> """inl main () = 1i32"""
> |> getCodeTokenRange None
> |> Async.runWithTimeout 10000
> |> Option.flatten
> |> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; 
> 8; 0; 0; 2; 1; 4; 0; 0;
> 2; 1; 3; 0; 0; 1; 3; 12; 0 |]])
> 
> ── [ 1.35s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:46 v #357 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:44 d #73 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:46 v #358 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:44 v #74 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:44 v #75 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:44 v #76 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:46 v #359 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #360 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #361 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #362 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #363 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #364 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #365 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #366 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #367 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #368 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #369 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #370 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #371 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #372 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #373 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #374 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #375 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #376 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:46 v #377 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:47 v #378 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:47 v #379 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:47 v #380 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:47 v #381 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:44 v #77 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:47 v #382 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:47 v #383 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:47 v #384 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:41 v #251 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:41 v #252 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:44 v #78 > Server bound to: http://localhost:13805
> │ 00:00:41 v #253 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl main () = 
> 1i32","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packa
> ges/5370829508ddefc7386d6b4d280722b47d97cb925585525bee733a187ff8f18b/main.spi"}}
> / result:
> │ 00:00:42 v #254 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileTokenRange":{"range":[{"character":0,"line":0},{"character":18,"line":0}],
> "uri":"file:///home/...et/spiral_Eval/packages/5370829508ddefc7386d6b4d280722b47
> d97cb925585525bee733a187ff8f18b/main.spi"}} / result: Some([
> │   0,
> │   0,
> │   3,
> │   7,
> │   0,
> │   0,
> │   4,
> │   4,
> │   0,
> │   0,
> │   0,
> │   5,
> │   1,
> │   8,
> │   0,
> │   0,
> │   1,
> │   1,
> │   8,
> │   0,
> │   0,
> │   2,
> │   1,
> │   4,
> │   0,
> │   0,
> │   2,
> │   1,
> │   3,
> │   0,
> │   0,
> │   1,
> │   3,
> │   12,
> │   0
> │ ])
> │ 00:00:42 v #255 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/5370829508ddefc7386d6b4d280722b47d97cb925585525bee733a187ff8f18b"
> ]}} / result:
> │ 00:00:47 v #385 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; 
> 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 3; 0; 0; 1; 3; 12; 0|]
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## getFileHoverAt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let getFileHoverAt
>     port
>     cancellationToken
>     path
>     (position : {| line: int; character: int |})
>     = async {
>     let fullPath = path |> System.IO.Path.GetFullPath
>     let! code = fullPath |> SpiralFileSystem.read_all_text_async
>     let lines = code |> SpiralSm.split "\n"
> 
>     let struct (token, disposable) = SpiralThreading.new_disposable_token 
> cancellationToken
>     use _ = disposable
> 
>     let port = port |> Option.defaultWith getCompilerPort
>     let! serverPort, _errors, ct, disposable = awaitCompiler port (Some token)
>     use _ = disposable
> 
>     let fullPathUri = fullPath |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
> 
>     let fileOpenObj = {| FileOpen = {| uri = fullPathUri; spiText = code |} |}
>     let! _fileOpenResult = fileOpenObj |> sendObj serverPort
> 
>     // do! Async.Sleep 60
> 
>     let hoverAtObj =
>         {|
>             HoverAt =
>                 {|
>                     uri = fullPathUri
>                     pos = position
>                 |}
>         |}
>     let! hoverAtResult =
>         hoverAtObj
>         |> sendObj serverPort
>         |> Async.withCancellationToken ct
> 
>     let fileDir = fullPath |> System.IO.Path.GetDirectoryName
>     if fileDir |> SpiralSm.starts_with (workspaceRoot </> "target") then
>         let fileDirUri = fileDir |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
>         let fileDeleteObj = {| FileDelete = {| uris = [[| fileDirUri |]] |} |}
>         let! _fileDeleteResult = fileDeleteObj |> sendObj serverPort
>         ()
> 
>     return hoverAtResult
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## getCodeHoverAt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let getCodeHoverAt cancellationToken code position = async {
>     let! mainPath, _ =
>         persistCode {| input = Spi (code, None); backend = None; packages = 
> [[||]] |}
> 
>     let codeDir = mainPath |> System.IO.Path.GetDirectoryName
>     let filePath = codeDir </> "hover.json"
>     let! output = async {
>         if filePath |> System.IO.File.Exists |> not
>         then return None
>         else
>             let! text = filePath |> SpiralFileSystem.read_all_text_async
> 
>             return
>                 if text.Length > 2
>                 then text |> Some
>                 else None
>     }
>     match output with
>     | Some output ->
>         return output |> Some
>     | None -> return! getFileHoverAt None cancellationToken mainPath position
> }
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> getCodeHoverAt None """inl main () = ()""" {| line = 0; character = 4 |}
> |> Async.runWithTimeout 10000
> |> Option.flatten
> |> _assertEqual (Some "() -> ()")
> 
> ── [ 2.95s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:48 v #386 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 d #79 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:48 v #387 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #80 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:45 v #81 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:45 v #82 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:48 v #388 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #389 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #390 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #391 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #392 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #393 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #394 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #395 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #396 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #397 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #398 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #399 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #400 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #401 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #402 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #403 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #404 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #405 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #406 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #407 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #408 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #409 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #410 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #83 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:48 v #411 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #412 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #413 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:42 v #256 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:42 v #257 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:46 v #84 > Server bound to: http://localhost:13805
> │ 00:00:42 v #258 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl main () = 
> ()","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/package
> s/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} /
> result:
> │ 00:00:45 v #259 Supervisor.sendJson / port: 13805 / 
> json: 
> {"HoverAt":{"pos":{"character":4,"line":0},"uri":"file:///home/runner/work/polyg
> lot/polyglot/target/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c
> 1b757721164d86f19feaf821e/main.spi"}} / result: Some(() -> ())
> │ 00:00:45 v #260 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e"
> ]}} / result:
> │ 00:00:50 v #414 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ Some "() -> ()"
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> getCodeHoverAt None """inl main () = ()""" {| line = 0; character = 0 |}
> |> Async.runWithTimeout 10000
> |> Option.flatten
> |> _assertEqual (Some null)
> 
> ── [ 2.88s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:50 v #415 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 d #85 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:51 v #416 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #86 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:48 v #87 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:48 v #88 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:51 v #417 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #418 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #419 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #420 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #421 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #422 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #423 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #424 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #425 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #426 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #427 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #428 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #429 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #430 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #431 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #432 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #433 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #434 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #435 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #436 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #437 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #438 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #439 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #89 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:51 v #440 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #441 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #442 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:45 v #261 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:45 v #262 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:49 v #90 > Server bound to: http://localhost:13805
> │ 00:00:45 v #263 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl main () = 
> ()","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/package
> s/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} /
> result:
> │ 00:00:48 v #264 Supervisor.sendJson / port: 13805 / 
> json: 
> {"HoverAt":{"pos":{"character":0,"line":0},"uri":"file:///home/runner/work/polyg
> lot/polyglot/target/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c
> 1b757721164d86f19feaf821e/main.spi"}} / result:
> │ 00:00:48 v #265 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e"
> ]}} / result:
> │ 00:00:53 v #443 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ Some null
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> getCodeHoverAt None """inl rec main () = main""" {| line = 0; character = 8 |}
> |> Async.runWithTimeout 10000
> |> Option.flatten
> |> _assertEqual (Some "forall 'a. () -> 'a")
> 
> ── [ 2.94s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:53 v #444 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 d #91 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:54 v #445 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #92 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:51 v #93 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:51 v #94 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:54 v #446 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #447 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #448 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #449 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #450 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #451 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #452 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #453 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #454 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #455 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #456 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #457 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #458 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #459 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #460 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #461 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #462 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #463 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #464 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #465 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #466 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #467 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #468 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #95 > Starting the Spiral Server. It is bound
> to: http://localhost:13805
> │ 00:00:54 v #469 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #470 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #471 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:48 v #266 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:48 v #267 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:51 v #96 > Server bound to: http://localhost:13805
> │ 00:00:48 v #268 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl rec main () = 
> main","uri":"file:///home/runner/work/polyglot/polyglot/ta...et/spiral_Eval/pack
> ages/7fa7f94d5cb478aa7827ac687ed3514a89f2a8e22fc895db0f8b03cacf92c7e2/main.spi"}
> } / result:
> │ 00:00:50 v #269 Supervisor.sendJson / port: 13805 / 
> json: 
> {"HoverAt":{"pos":{"character":8,"line":0},"uri":"file:///home/runner/work/polyg
> lot/polyglot/target/spiral_Eval/packages/7fa7f94d5cb478aa7827ac687ed3514a89f2a8e
> 22fc895db0f8b03cacf92c7e2/main.spi"}} / result: Some(forall 'a. () -> 'a)
> │ 00:00:51 v #270 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/7fa7f94d5cb478aa7827ac687ed3514a89f2a8e22fc895db0f8b03cacf92c7e2"
> ]}} / result:
> │ 00:00:56 v #472 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ Some "forall 'a. () -> 'a"
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> getCodeHoverAt None """inl main () = 1""" {| line = 0; character = 4 |}
> |> Async.runWithTimeout 10000
> |> Option.flatten
> |> _assertEqual (Some "forall 'a {number}. () -> 'a")
> 
> ── [ 2.90s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:56 v #473 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 d #97 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   
> ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64"; options = { command = dotnet 
> "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral 
> Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 
> --default-int i32 --default-float f64; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some
> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some 
> "/home/runner/work/polyglot/polyglot" } }
> │ 00:00:57 v #474 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #98 > 00:00:00 d #1 pwd: 
> /home/runner/work/polyglot/polyglot
> │ 00:00:54 v #99 > 00:00:00 d #2 dllPath: 
> /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language
> 2/artifacts/bin/The Spiral Language 2/release
> │ 00:00:54 v #100 > 00:00:00 d #3 targetDir: 
> /home/runner/work/polyglot/polyglot/target/spiral_Eval
> │ 00:00:57 v #475 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #476 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #477 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #478 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #479 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #480 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #481 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #482 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #483 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #484 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #485 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #486 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #487 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #488 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #489 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #490 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #491 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #492 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #493 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #494 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #495 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #496 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #497 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:54 v #101 > Starting the Spiral Server. It is 
> bound to: http://localhost:13805
> │ 00:00:57 v #498 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #499 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:57 v #500 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ 00:00:51 v #271 Supervisor.sendJson / port: 13805 / 
> json: {"Ping":true} / result:
> │ 00:00:51 v #272 Supervisor.awaitCompiler / Ping / 
> result: 'Some null' / port: 13805 / retry: 1
> │ 00:00:54 v #102 > Server bound to: 
> http://localhost:13805
> │ 00:00:51 v #273 Supervisor.sendJson / port: 13805 / 
> json: {"FileOpen":{"spiText":"inl main () = 
> 1","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages
> /2f51fd7aa58d1ea373b484460dba65cec845b6dddbc1fc6de2eea30335846eee/main.spi"}} / 
> result:
> │ 00:00:53 v #274 Supervisor.sendJson / port: 13805 / 
> json: 
> {"HoverAt":{"pos":{"character":4,"line":0},"uri":"file:///home/runner/work/polyg
> lot/polyglot/target/spiral_Eval/packages/2f51fd7aa58d1ea373b484460dba65cec845b6d
> ddbc1fc6de2eea30335846eee/main.spi"}} / result: Some(forall 'a {number}. () -> 
> 'a)
> │ 00:00:53 v #275 Supervisor.sendJson / port: 13805 / 
> json: 
> {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral
> _Eval/packages/2f51fd7aa58d1ea373b484460dba65cec845b6dddbc1fc6de2eea30335846eee"
> ]}} / result:
> │ 00:00:59 v #501 networking.test_port_open / { port = 
> 13805; ex = System.AggregateException: One or more errors occurred. (Connection 
> refused) }
> │ Some "forall 'a {number}. () -> 'a"
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Arguments
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> [[<RequireQualifiedAccess>]]
> type Arguments =
>     | Build_File of string * string
>     | File_Token_Range of string * string
>     | File_Hover_At of string * string * int * int
>     | Execute_Command of string
>     | [[<Argu.ArguAttributes.Unique>]] Timeout of int
>     | [[<Argu.ArguAttributes.Unique>]] Port of int
>     | [[<Argu.ArguAttributes.Unique>]] Parallel
>     | [[<Argu.ArguAttributes.Unique>]] Exit_On_Error
> 
>     interface Argu.IArgParserTemplate with
>         member s.Usage =
>             match s with
>             | Build_File _ -> nameof Build_File
>             | File_Token_Range _ -> nameof File_Token_Range
>             | File_Hover_At _ -> nameof File_Hover_At
>             | Execute_Command _ -> nameof Execute_Command
>             | Timeout _ -> nameof Timeout
>             | Port _ -> nameof Port
>             | Parallel -> nameof Parallel
>             | Exit_On_Error-> nameof Exit_On_Error
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
> 
> ── [ 84.03ms - return value ] ──────────────────────────────────────────────────
> │ "USAGE: dotnet-repl [--help] [--build-file <string> <string>]
> │                    [--file-token-range <string> <string>]
> │                    [--file-hover-at <string> <string> <int> 
> <int>]
> │                    [--execute-command <string>] [--timeout 
> <int>] [--port <int>]
> │                    [--parallel] [--exit-on-error]
> │ 
> │ OPTIONS:
> │ 
> │     --build-file <string> <string>
> │                           Build_File
> │     --file-token-range <string> <string>
> │                           File_Token_Range
> │     --file-hover-at <string> <string> <int> <int>
> │                           File_Hover_At
> │     --execute-command <string>
> │                           Execute_Command
> │     --timeout <int>       Timeout
> │     --port <int>          Port
> │     --parallel            Parallel
> │     --exit-on-error       Exit_On_Error
> │     --help                display this list of options.
> │ "
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let main args =
>     let argsMap = args |> Runtime.parseArgsMap<Arguments>
> 
>     let buildFileActions =
>         argsMap
>         |> Map.tryFind (nameof Arguments.Build_File)
>         |> Option.defaultValue [[]]
>         |> List.choose (function
>             | Arguments.Build_File (inputPath, outputPath) -> Some (inputPath, 
> outputPath)
>             | _ -> None
>         )
> 
>     let fileTokenRangeActions =
>         argsMap
>         |> Map.tryFind (nameof Arguments.File_Token_Range)
>         |> Option.defaultValue [[]]
>         |> List.choose (function
>             | Arguments.File_Token_Range (inputPath, outputPath) -> Some 
> (inputPath, outputPath)
>             | _ -> None
>         )
> 
>     let fileHoverAtActions =
>         argsMap
>         |> Map.tryFind (nameof Arguments.File_Hover_At)
>         |> Option.defaultValue [[]]
>         |> List.choose (function
>             | Arguments.File_Hover_At (inputPath, outputPath, line, character) 
> ->
>                 Some (inputPath, outputPath, line, character)
>             | _ -> None
>         )
> 
>     let executeCommandActions =
>         argsMap
>         |> Map.tryFind (nameof Arguments.Execute_Command)
>         |> Option.defaultValue [[]]
>         |> List.choose (function
>             | Arguments.Execute_Command command -> Some command
>             | _ -> None
>         )
> 
>     let timeout =
>         match argsMap |> Map.tryFind (nameof Arguments.Timeout) with
>         | Some [[ Arguments.Timeout timeout ]] -> timeout
>         | _ -> 60000 * 60
> 
>     let port =
>         match argsMap |> Map.tryFind (nameof Arguments.Port) with
>         | Some [[ Arguments.Port port ]] -> Some port
>         | _ -> None
> 
>     let isParallel = argsMap |> Map.containsKey (nameof Arguments.Parallel)
> 
>     let isExitOnError = argsMap |> Map.containsKey (nameof 
> Arguments.Exit_On_Error)
> 
>     async {
>         let port =
>             port
>             |> Option.defaultWith getCompilerPort
>         let struct (localToken, disposable) = 
> SpiralThreading.new_disposable_token None
>         let! serverPort, _errors, compilerToken, disposable = awaitCompiler port
> (Some localToken)
>         use _ = disposable
> 
>         let buildFileAsync =
>             buildFileActions
>             |> List.map (fun (inputPath, outputPath) -> async {
>                 let! _outputPath, (outputCode, errors) =
>                     let backend =
>                         if outputPath |> SpiralSm.ends_with ".fsx"
>                         then Fsharp
>                         elif outputPath |> SpiralSm.ends_with ".py"
>                         then Cuda
>                         else failwith $"Supervisor.main / invalid backend / 
> outputPath: {outputPath}"
>                     let isReal = inputPath |> SpiralSm.ends_with ".spir"
>                     inputPath |> buildFile backend timeout (Some serverPort) 
> None
> 
>                 errors
>                 |> List.map snd
>                 |> List.iter (fun error ->
>                     trace Critical (fun () -> $"main / error: {error |> 
> serializeObj}") _locals
>                 )
> 
>                 match outputCode with
>                 | Some outputCode ->
>                     do! outputCode |> SpiralFileSystem.write_all_text_exists 
> outputPath
>                     return 0
>                 | None ->
>                     if isExitOnError
>                     then SpiralRuntime.current_process_kill ()
> 
>                     return 1
>             })
> 
>         let fileTokenRangeAsync =
>             fileTokenRangeActions
>             |> List.map (fun (inputPath, outputPath) -> async {
>                 let! tokenRange = inputPath |> getFileTokenRange (Some 
> serverPort) None
>                 match tokenRange with
>                 | Some tokenRange ->
>                     do! tokenRange |> FSharp.Json.Json.serialize |> 
> SpiralFileSystem.write_all_text_exists outputPath
>                     return 0
>                 | None ->
>                     if isExitOnError
>                     then SpiralRuntime.current_process_kill ()
> 
>                     return 1
>             })
> 
>         let fileHoverAtAsync =
>             fileHoverAtActions
>             |> List.map (fun (inputPath, outputPath, line, character) -> async {
>                 let! hoverAt =
>                     getFileHoverAt
>                         (Some serverPort)
>                         None
>                         inputPath
>                         {| line = line; character = character |}
>                 match hoverAt with
>                 | Some hoverAt ->
>                     do! hoverAt |> FSharp.Json.Json.serialize |> 
> SpiralFileSystem.write_all_text_exists outputPath
>                     return 0
>                 | None ->
>                     if isExitOnError
>                     then SpiralRuntime.current_process_kill ()
> 
>                     return 1
>             })
> 
>         let executeCommandAsync =
>             executeCommandActions
>             |> List.map (fun command -> async {
>                 let! exitCode, result =
>                     SpiralRuntime.execution_options (fun x ->
>                         { x with
>                             l0 = command
>                             l1 = Some compilerToken
>                         }
>                     )
>                     |> SpiralRuntime.execute_with_options_async
> 
>                 trace Debug (fun () -> $"main / executeCommand / exitCode: 
> {exitCode} / command: {command}") _locals
> 
>                 if isExitOnError && exitCode <> 0
>                 then SpiralRuntime.current_process_kill ()
> 
>                 return exitCode
>             })
> 
>         return!
>             [[| buildFileAsync; fileTokenRangeAsync; fileHoverAtAsync; 
> executeCommandAsync |]]
>             |> Seq.collect id
>             |> fun x ->
>                 if isParallel
>                 then Async.Parallel (x, float System.Environment.ProcessorCount 
> * 0.51 |> ceil |> int)
>                 else Async.Sequential x
>             |> Async.map Array.sum
>     }
>     |> Async.runWithTimeout timeout
>     |> Option.defaultValue 1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let args =
>     System.Environment.GetEnvironmentVariable "ARGS"
>     |> SpiralRuntime.split_args
>     |> Result.toArray
>     |> Array.collect id
> 
> match args with
> | [[||]] -> 0
> | args -> if main args = 0 then 0 else failwith "main failed"
> 
> ── [ 50.26ms - return value ] ──────────────────────────────────────────────────
> │ <div class="dni-plaintext"><pre>0
> │ </pre></div><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
00:01:08 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 281687 }
00:01:08 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:01:08 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb to html
00:01:08 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:08 v #7 !   validate(nb)
00:01:09 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:09 v #9 !   return _pygments_highlight(
00:01:10 v #10 ! [NbConvertApp] Writing 703997 bytes to /home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.html
00:01:10 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 906 }
00:01:10 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 906 }
00:01:10 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:01:10 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:01:10 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:01:10 d #16 spiral.run / dib / { exit_code = 0; result_length = 282652 }
00:00:00 d #1 writeDibCode / output: Fs / path: Supervisor.dib
00:00:00 d #2 parseDibCode / output: Fs / file: Supervisor.dib
00:00:00 d #1 persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Supervisor / hash:  / code.Length: 32787
00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "/home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/spiral/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/spiral/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/Supervisor" } }
00:00:00 v #2 >   Determining projects to restore...
00:00:01 v #3 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #4 >   The last full restore is still up to date. Nothing left to do.
00:00:01 v #5 >   Total time taken: 0 milliseconds
00:00:01 v #6 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #7 >   Restoring /home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj
00:00:01 v #8 >   Starting restore process.
00:00:01 v #9 >   Total time taken: 0 milliseconds
00:00:02 v #10 >   Restored /home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj (in 322 ms).
00:00:13 v #11 >   Supervisor -> /home/runner/work/polyglot/polyglot/target/Builder/Supervisor/bin/Release/net9.0/linux-x64/Supervisor.dll
00:00:13 v #12 >   Supervisor -> /home/runner/work/polyglot/polyglot/apps/spiral/dist
00:00:13 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 713 }
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Eval.dib", "--retries", "3"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # Eval (Polyglot)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> dard2.1/FSharp.Control.AsyncSeq.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> 0/System.Reactive.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> netstandard2.0/System.Reactive.Linq.dll"
> #r 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
> mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
> ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
> /lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
> /lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
> 7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
> #r 
> @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
> rp.Json.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.management/7.0.0/lib/netstandard2.
> 0/System.Management.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if !INTERACTIVE
> open Lib
> #endif
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Common
> open SpiralFileSystem.Operators
> open Microsoft.AspNetCore.SignalR.Client
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open System
> open System.Collections.Generic
> open System.IO
> open System.Text
> open System.Threading
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## mapErrors
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline mapErrors (severity, errors, lastTopLevelIndex) allCode =
>     let allCodeLineLength =
>         allCode |> SpiralSm.split "\n" |> Array.length
> 
>     errors
>     |> List.map (fun (_, error) ->
>         match error with
>         | Supervisor.FatalError message ->
>             (
>                 severity, message, 0, ("", (0, 0), (0, 0))
>             )
>             |> List.singleton
>         | Supervisor.TracedError data ->
>             data.trace
>             |> List.truncate 5
>             |> List.append [[ data.message ]]
>             |> List.map (fun message ->
>                 (
>                     severity, message, 0, ("", (0, 0), (0, 0))
>                 )
>             )
>         | Supervisor.PackageErrors data
>         | Supervisor.TokenizerErrors data
>         | Supervisor.ParserErrors data
>         | Supervisor.TypeErrors data ->
>             data.errors
>             |> List.filter (fun ((rangeStart, _), _) ->
>                 trace Debug (fun () -> $"Eval.mapErrors / rangeStart.line: 
> {rangeStart.line} / lastTopLevelIndex: {lastTopLevelIndex} / allCodeLineLength: 
> {allCodeLineLength} / filtered: {rangeStart.line > allCodeLineLength}") _locals
>                 rangeStart.line > allCodeLineLength
>             )
>             |> List.map (fun ((rangeStart, rangeEnd), message) ->
>                 (
>                     severity,
>                     message,
>                     0,
>                     (
>                         (data.uri |> System.IO.Path.GetFileName),
>                         (
>                             (match lastTopLevelIndex with
>                             | Some i when rangeStart.line >= i + 
> allCodeLineLength + 3 ->
>                                 rangeStart.line - allCodeLineLength - 2
>                             | _ -> rangeStart.line - allCodeLineLength),
>                             (match lastTopLevelIndex with
>                             | Some i when rangeStart.line >= i + 
> allCodeLineLength + 3 ->
>                                 rangeStart.character - 4
>                             | _ -> rangeStart.character)
>                         ),
>                         (
>                             (match lastTopLevelIndex with
>                             | Some i when rangeStart.line >= i + 
> allCodeLineLength + 3 ->
>                                 rangeEnd.line - allCodeLineLength - 2
>                             | _ -> rangeEnd.line - allCodeLineLength),
>                             (match lastTopLevelIndex with
>                             | Some i when rangeStart.line >= i + 
> allCodeLineLength + 3 ->
>                                 rangeEnd.character - 4
>                             | _ -> rangeEnd.character)
>                         )
>                     )
>                 )
>             )
>     )
>     |> List.collect id
>     |> List.toArray
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### workspaceRoot
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let workspaceRoot = SpiralFileSystem.get_workspace_root ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### targetDir
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let targetDir = workspaceRoot </> "target/spiral_Eval"
> [[ targetDir ]]
> |> List.iter (fun dir -> if Directory.Exists dir |> not then 
> Directory.CreateDirectory dir |> ignore)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### assemblyName
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let assemblyName = Reflection.Assembly.GetEntryAssembly().GetName().Name
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## allCode
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let mutable allCode = ""
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### allPackages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let mutable allPackages : string [[]] = [[||]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## allCodeReal
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let mutable allCodeReal = ""
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## traceToggle
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let mutable traceToggle = false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## getParentProcessId
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let getParentProcessId () =
>     if SpiralPlatform.is_windows () |> not
>     then 0u
>     else
>         let pid = System.Diagnostics.Process.GetCurrentProcess().Id
>         let query = $"SELECT ParentProcessId FROM Win32_Process WHERE ProcessId 
> = {pid}"
>         use searcher = new System.Management.ManagementObjectSearcher (query)
>         use results = searcher.Get ()
>         let data = results |> Seq.cast<System.Management.ManagementObject>
>         if data |> Seq.isEmpty
>         then 0u
>         else data |> Seq.head |> (fun mo -> mo.[["ParentProcessId"]] :?> uint32)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## startTokenRangeWatcher
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline startTokenRangeWatcher () =
>     if [[ "dotnet-repl" ]] |> List.contains assemblyName
>     then new_disposable (fun () -> ())
>     else
>         let tokensDir = targetDir </> "tokens"
> 
>         [[ tokensDir ]]
>         |> List.iter (fun dir -> if Directory.Exists dir |> not then 
> Directory.CreateDirectory dir |> ignore)
> 
>         let stream, disposable = FileSystem.watchDirectory (fun _ -> false) 
> tokensDir
> 
>         try
>             let existingFilesChild =
>                 tokensDir
>                 |> System.IO.Directory.GetDirectories
>                 |> Array.map (fun codeDir -> async {
>                     try
>                         let tokensPath = codeDir </> "tokens.json"
>                         if tokensPath |> File.Exists |> not then
>                             let spiralCodePath = codeDir </> "main.spi"
>                             let spiralRealCodePath = codeDir </> 
> "main_real.spir"
>                             let spiralExists = spiralCodePath |> 
> System.IO.File.Exists
>                             let spiralRealExists = spiralRealCodePath |> 
> System.IO.File.Exists
>                             if spiralExists |> not && spiralRealExists |> not
>                             then do! codeDir |> 
> SpiralFileSystem.delete_directory_async |> Async.Ignore
>                             else
>                                 let! tokens =
>                                     if spiralExists then spiralCodePath else 
> spiralRealCodePath
>                                     |> Supervisor.getFileTokenRange None None
>                                 match tokens with
>                                 | Some tokens ->
>                                     do!
>                                         tokens
>                                         |> FSharp.Json.Json.serialize
>                                         |> SpiralFileSystem.write_all_text_async
> tokensPath
>                                 | None ->
>                                     trace Verbose (fun () -> 
> $"Eval.startTokenRangeWatcher / GetDirectories / tokens: None") _locals
>                     with ex ->
>                         trace Critical (fun () -> $"Eval.startTokenRangeWatcher 
> / GetDirectories / ex: {ex |> SpiralSm.format_exception}") _locals
>                 })
>                 |> Async.Parallel
>                 |> Async.Ignore
> 
>             let streamAsyncChild =
>                 stream
>                 |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event)
> ->
>                     match event with
>                     | FileSystem.FileSystemChange.Changed (codePath, _)
>                         when [[ "main.spi"; "main_real.spir" ]]
>                             |> List.contains (System.IO.Path.GetFileName 
> codePath)
>                         ->
>                         async {
>                             let hashDir = codePath |> 
> System.IO.Directory.GetParent
>                             let hashHex = hashDir.Name
>                             let codePath = tokensDir </> codePath
>                             let tokensPath = tokensDir </> hashHex </> 
> "tokens.json"
>                             // do! Async.Sleep 30
>                             let rec loop retry = async {
>                                 let! tokens = codePath |> 
> Supervisor.getFileTokenRange None None
>                                 if retry = 3 || tokens <> Some [[||]]
>                                 then return tokens, retry
>                                 else
>                                     trace Debug
>                                         (fun () -> $"Eval.startTokenRangeWatcher
> / iterAsyncParallel")
>                                         (fun () -> $"retry: {retry} / tokens: 
> %A{tokens}")
>                                     do! Async.Sleep 30
>                                     return! loop (retry + 1)
>                             }
>                             let! tokens, retries = loop 1
>                             match tokens with
>                             | Some tokens ->
>                                 do!
>                                     tokens
>                                     |> FSharp.Json.Json.serialize
>                                     |> SpiralFileSystem.write_all_text_exists 
> tokensPath
>                             | None ->
>                                 trace Debug
>                                     (fun () -> $"Eval.startTokenRangeWatcher / 
> iterAsyncParallel")
>                                     (fun () -> $"retries: {retries} / tokens: 
> {tokens}")
>                         }
>                         |> Async.retryAsync 3
>                         |> Async.map (Result.toOption >> Option.defaultValue ())
>                     | _ -> () |> Async.init
>                 )
> 
>             let parentAsyncChild = async {
>                 let parentProcessId = getParentProcessId ()
>                 trace Verbose
>                     (fun () -> "Eval.parentAsyncChild")
>                     (fun () -> $"parentProcessId: {parentProcessId} / {_locals 
> ()}")
> 
>                 if parentProcessId > 0u then
>                     let parentProcess = parentProcessId |> int |> 
> System.Diagnostics.Process.GetProcessById
>                     do! parentProcess.WaitForExitAsync () |> Async.AwaitTask
>                     trace Debug
>                         (fun () -> "Eval.parentAsyncChild / Parent process has 
> exited. Performing cleanup...")
>                         (fun () -> $"{_locals ()}")
>                     System.Threading.Thread.Sleep 1000
>                     System.Environment.Exit 1
>             }
> 
>             async {
>                 do! Async.Sleep 3000
>                 existingFilesChild |> Async.StartImmediate
>                 streamAsyncChild |> Async.Start
>                 parentAsyncChild |> Async.Start
>             }
>             |> Async.Start
>         with ex ->
>             trace Critical (fun () -> $"Eval.startTokenRangeWatcher / ex: {ex |>
> SpiralSm.format_exception}") _locals
> 
>         disposable
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## startCommandsWatcher
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let startCommandsWatcher (uriServer : string) =
>     let commandsDir = targetDir </> "eval_commands"
>     let commandHistoryDir = targetDir </> "eval_command_history"
>     [[ commandsDir; commandHistoryDir ]]
>     |> List.iter (fun dir -> if Directory.Exists dir |> not then 
> Directory.CreateDirectory dir |> ignore)
> 
>     Directory.EnumerateFiles commandsDir |> Seq.iter File.Delete
> 
>     let stream, disposable =
>         commandsDir
>         |> FileSystem.watchDirectory (function
>             | FileSystem.FileSystemChange.Created _ -> true
>             | _ -> false
>         )
> 
>     let connection = HubConnectionBuilder().WithUrl(uriServer).Build()
>     connection.StartAsync() |> Async.AwaitTask |> Async.Start
>     // let _ = connection.On<string>("ServerToClientMsg", fun x ->
>     //     printfn $"ServerToClientMsg: '{x}'"
>     // )
> 
>     stream
>     |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event) -> async {
>         let _locals () = $"ticks: {ticks} / event: {event} / {_locals ()}"
>         trace Verbose (fun () -> "Eval.startCommandsWatcher / 
> iterAsyncParallel") _locals
> 
>         match event with
>         | FileSystem.FileSystemChange.Created (path, Some json) ->
>             try
>                 let fullPath = commandsDir </> path
>                 let! result = 
> connection.InvokeAsync<string>("ClientToServerMsg", json) |> Async.AwaitTask
>                 let commandHistoryPath = commandHistoryDir </> path
>                 do! fullPath |> SpiralFileSystem.move_file_async 
> commandHistoryPath |> Async.Ignore
>                 if result |> SpiralSm.trim |> String.length > 0 then
>                     let resultPath = commandHistoryDir </> 
> $"{Path.GetFileNameWithoutExtension path}_result.json"
>                     do! result |> SpiralFileSystem.write_all_text_async 
> resultPath
>             with ex ->
>                 let _locals () = $"ex: {ex |> SpiralSm.format_exception} / 
> {_locals ()}"
>                 trace Critical (fun () -> "Eval.startCommandsWatcher / 
> iterAsyncParallel") _locals
>         | _ -> ()
>     })
>     |> Async.StartChild
>     |> Async.Ignore
>     |> Async.Start
> 
>     new_disposable (fun () ->
>         disposable.Dispose ()
>     )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## prepareSpiral
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let prepareSpiral rawCellCode lines =
>     let lastBlock =
>         lines
>         |> Array.tryFindBack (fun line ->
>             line |> String.length > 0
>             && line.[[0]] <> ' '
>         )
> 
>     let hasMain =
>         lastBlock
>         |> Option.exists (fun line ->
>             line |> SpiralSm.starts_with "inl main "
>             || line |> SpiralSm.starts_with "let main "
>         )
> 
>     if hasMain
>     then rawCellCode, None
>     else
>         let lastTopLevelIndex, _ =
>             (lines |> Array.indexed, (None, false))
>             ||> Array.foldBack (fun (i, line) (lastTopLevelIndex, finished) ->
>                 // trace Verbose (fun () -> $"Eval.prepareSpiral / i: {i} / 
> line: '{line}' / lastTopLevelIndex: {lastTopLevelIndex} / finished: {finished}")
> _locals
>                 match line with
>                 | _ when finished -> lastTopLevelIndex, true
>                 | "" -> lastTopLevelIndex, false
>                 | line when
>                     line |> SpiralSm.starts_with " "
>                     || line |> SpiralSm.starts_with "// " -> lastTopLevelIndex, 
> false
>                 | line when
>                     line |> SpiralSm.starts_with "open "
>                     || line |> SpiralSm.starts_with "prototype "
>                     || line |> SpiralSm.starts_with "instance "
>                     || line |> SpiralSm.starts_with "type "
>                     || line |> SpiralSm.starts_with "union "
>                     || line |> SpiralSm.starts_with "nominal " -> 
> lastTopLevelIndex, true
>                 | line when
>                     line |> SpiralSm.starts_with "inl "
>                     || line |> SpiralSm.starts_with "and "
>                     || line |> SpiralSm.starts_with "let " ->
>                     let m =
>                         System.Text.RegularExpressions.Regex.Match (
>                             line,
>                             @"^(?:and +)?(inl|let) +((?:[[{( 
> ]]*)?[[~\(\w]]+[[\w\d']]*(?:|[[\w\d']]+[[ }]]*(?:&? *[[\w\d']]*\))?| 
> *[[~\w]][[\w\d']]*\)|, *[[~\w]][[\w\d']]*)) +[[:=]](?! +function)"
>                         )
>                     trace Verbose (fun () -> $"Eval.prepareSpi / m: '{m}' / 
> m.Groups.Count: {m.Groups.Count}") _locals
>                     if m.Groups.Count = 3
>                     then Some i, false
>                     else lastTopLevelIndex, true
>                 | _ -> Some i, false
>             )
>         let code =
>             match lastTopLevelIndex with
>             | Some lastTopLevelIndex ->
>                 lines
>                 |> Array.mapi (fun i line ->
>                     match i with
>                     | i when i < lastTopLevelIndex -> line
>                     | i when i = lastTopLevelIndex -> $"\nlet main () =\n    
> {line}"
>                     | _ when line |> SpiralSm.trim = "" -> ""
>                     | _ -> $"    {line}"
>                 )
>                 |> SpiralSm.concat "\n"
>             | None -> $"{rawCellCode}\n\ninl main () = ()\n"
>         code, lastTopLevelIndex
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## processSpiralOutput
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let processSpiralOutput
>     (props : {|
>         printCode: bool
>         traceLevel: TraceLevel
>         builderCommands: string array
>         lastTopLevelIndex: int option
>         backend: Supervisor.Backend
>         cancellationToken: _
>         spiralErrors: _
>         code: string
>         outputPath: string
>         isReal: bool
>     |})
>     = async {
>     let inline _trace (fn : unit -> string) =
>         if props.traceLevel = Verbose
>         then trace Info (fun () -> $"Eval.processSpiralOutput / props: {props |>
> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / {fn ()}") _locals
>         else fn () |> System.Console.WriteLine
> 
>     if props.printCode && props.backend <> Supervisor.Cuda then
>         let ext = props.outputPath |> System.IO.Path.GetExtension
>         _trace (fun () -> if props.builderCommands.Length > 0 then 
> $"{ext}:\n{props.code}\n" else props.code)
> 
>     let workspaceRootExternal =
>         let currentDir = System.IO.Directory.GetCurrentDirectory () |> 
> SpiralSm.to_lower
>         let workspaceRoot = workspaceRoot |> SpiralSm.to_lower
>         if currentDir |> SpiralSm.starts_with workspaceRoot
>         then None
>         else Some workspaceRoot
> 
>     let! spiralBuilderResults =
>         match props.builderCommands, props.lastTopLevelIndex with
>         | [[||]], _ | _, None -> [[||]] |> Async.init
>         | builderCommands, _ ->
>             builderCommands
>             |> Array.map (fun builderCommand ->
>                 let path =
>                     workspaceRoot </> 
> $@"deps/spiral/workspace/target/release/spiral{SpiralPlatform.get_executable_suf
> fix ()}"
>                     |> System.IO.Path.GetFullPath
>                 let commands =
>                     if props.backend = Supervisor.Fsharp
>                         && (
>                             builderCommand |> SpiralSm.starts_with "rust"
>                             || builderCommand |> SpiralSm.starts_with 
> "typescript"
>                             || builderCommand |> SpiralSm.starts_with "python"
>                         )
>                     then [[| $"{path} fable --fs-path \"{props.outputPath}\" 
> --command \"{builderCommand}\"" |]]
>                     elif props.backend = Supervisor.Cuda
>                         && builderCommand |> SpiralSm.starts_with "cuda"
>                     then [[| $"{path} {builderCommand} --py-path 
> \"{props.outputPath}\"" |]]
>                     else [[||]]
>                 builderCommand, commands
>             )
>             |> Array.filter (fun (_, commands) -> commands.Length > 0)
>             |> Array.collect (fun (builderCommand, commands) ->
>                 commands
>                 |> Array.map (fun command -> async {
>                     let! exitCode, result =
>                         SpiralRuntime.execution_options (fun x ->
>                             { x with
>                                 l0 = command
>                                 l1 = props.cancellationToken
>                                 l2 = [[|
>                                     "AUTOMATION", assemblyName = "dotnet-repl" 
> |> string
>                                     "TRACE_LEVEL", $"%A{if props.printCode then 
> props.traceLevel else Info}"
>                                 |]]
>                                 l6 = workspaceRootExternal
>                             }
>                         )
>                         |> SpiralRuntime.execute_with_options_async
>                     trace Debug
>                         (fun () -> $"Eval.processSpiralOutput / spiral cli")
>                         (fun () -> $"exitCode: {exitCode} / builderCommand: 
> {builderCommand} / command: {command} / result: {result |> SpiralSm.ellipsis_end
> 400} / {_locals ()}")
>                     return
>                         if exitCode = 0
>                         then {| code = result; eval = false; builderCommand = 
> builderCommand |} |> Ok
>                         else result |> Error
>                 })
>             )
>             |> Async.Parallel
> 
>     let hasEval =
>         props.backend = Supervisor.Fsharp
>         && props.builderCommands |> Array.exists (fun x -> x |> 
> SpiralSm.starts_with "fsharp")
> 
>     let outputResult =
>         if props.builderCommands.Length > 0 && not hasEval
>         then None
>         else
>             let code =
>                 if props.builderCommands.Length > 1
>                 then
>                     let header = "System.Console.WriteLine \".fsx output:\"\n"
>                     $"{header}{props.code}"
>                 else props.code
>             Some (Ok [[ {| code = code; eval = true; builderCommand = "" |} ]])
> 
>     match outputResult, spiralBuilderResults with
>     | Some outputResult, [[||]] ->
>         return outputResult, [[||]]
>     | None, [[||]] ->
>         return Ok [[ {| code = "()"; eval = true; builderCommand = "" |} ]], 
> [[||]]
>     | _, spiralBuilderResults ->
>         try
>             let spiralResults =
>                 match outputResult with
>                 | Some (Ok code) ->
>                     spiralBuilderResults
>                     |> Array.append (code |> List.map Ok |> List.toArray)
>                 | _ -> spiralBuilderResults
>             let codes =
>                 spiralResults
>                 |> Array.map (fun spiralBuilderResult' ->
>                     let commandResult, errors =
>                         match spiralBuilderResult' with
>                         | Ok result when result.eval = false ->
>                             let result' =
>                                 result.code
>                                 |> 
> FSharp.Json.Json.deserialize<Map<string,string>>
>                             let result =
>                                 match result' |> Map.tryFind "command_result" 
> with
>                                 | Some result'' ->
>                                     result''
>                                     |> 
> FSharp.Json.Json.deserialize<Map<string,string>>
>                                     |> Map.add "builderCommand" 
> result.builderCommand
>                                 | None -> Map.empty
>                             result, [[||]]
>                         | Ok result when result.eval = true ->
>                             let result =
>                                 [[
>                                     "extension", "fsx"
>                                     "code", result.code
>                                     "output", ""
>                                 ]]
>                                 |> Map.ofList
>                             result, [[||]]
>                         | Error error ->
>                             Map.empty,
>                             [[|
>                                 (
>                                     TraceLevel.Critical, 
> $"Eval.processSpiralOutput / evalResult error / errors[[0]] / outputPath: 
> {props.outputPath} / builderCommands: %A{props.builderCommands} / 
> spiralBuilderResult': %A{spiralBuilderResult'} / error: %A{error}", 0, ("", (0, 
> 0), (0, 0))
>                                 )
>                             |]]
>                         | _ ->
>                             Map.empty, [[||]]
> 
>                     if errors |> Array.isEmpty |> not
>                     then Error (Exception $"Eval.processSpiralOutput / 
> evalResult errors / Exception / commandResult: %A{commandResult}"), errors
>                     else
>                         let extension = commandResult.[["extension"]]
>                         let code = commandResult.[["code"]]
>                         let output = commandResult.[["output"]]
>                         let builderCommand =
>                             commandResult
>                             |> Map.tryFind "builderCommand"
>                             |> Option.defaultValue ""
> 
>                         let backendInfo =
>                             match props.backend, builderCommand with
>                             | Supervisor.Fsharp, builderCommand
>                                 when builderCommand |> SpiralSm.contains " " -> 
> $" ({builderCommand})"
>                             | Supervisor.Fsharp, _ -> ""
>                             | _ -> $" ({props.backend})"
> 
>                         let eval = output = "" && extension = "fsx"
> 
>                         if props.printCode && not eval
>                         then _trace (fun () -> 
> $""".{extension}{backendInfo}:{'\n'}{code}""")
> 
>                         trace Debug
>                             (fun () -> $"Eval.processSpiralOutput / result")
>                             (fun () -> $"builderCommand: {builderCommand} / 
> extension: {extension} / commandResult: {commandResult |> 
> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400}/ {_locals ()}")
> 
>                         let code =
>                             if props.printCode
>                                 || spiralResults.Length > 1
>                                 || props.builderCommands.Length > 1
>                             then
>                                 if eval
>                                 then code
>                                 else
>                                     let header = $".{extension} 
> output{backendInfo}:\n"
>                                     $"""{if output |> SpiralSm.contains "\n" 
> then "\n" else ""}{header}{output}"""
>                             elif eval
>                             then code
>                             else output
>                         Ok {| code = code; eval = eval; builderCommand = 
> builderCommand |}, [[||]]
>                 )
>             trace Debug
>                 (fun () -> $"Eval.processSpiralOutput / codes")
>                 (fun () ->
>                     let props = {| props with cancellationToken = None |}
>                     $"codes: {codes |> FSharp.Json.Json.serialize |> 
> SpiralSm.ellipsis_end 400} / spiralResults: {spiralResults |> 
> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / spiralBuilderResults:
> {spiralBuilderResults |> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 
> 400} / props: {props |> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400}
> / {_locals ()}")
>             return
>                 (((Ok [[]]), [[||]]), codes)
>                 ||> Array.fold (fun (acc_code, acc_errors) (code, errors) ->
>                     match code, acc_code with
>                     | Ok code, Ok acc_code ->
>                         let errors =
>                             acc_errors
>                             |> Array.append errors
>                             |> Array.append props.spiralErrors
>                         let errors =
>                             if errors |> Array.isEmpty
>                             then errors
>                             else
>                                 let code = $"%A{code}"
>                                 errors
>                                 |> Array.append [[|
>                                     TraceLevel.Critical, 
> $"Eval.processSpiralOutput / errors / errors[[-1]] / outputPath: 
> {props.outputPath} / builderCommands: %A{props.builderCommands} / code: {code |>
> SpiralSm.ellipsis_end 400}", 0, ("", (0, 0), (0, 0))
>                                 |]]
>                         Ok (code :: acc_code), errors
>                     | Error ex, _
>                     | _, Error ex ->
>                         Error (Exception $"Eval.processSpiralOutput / -1 / 
> Exception / spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |> 
> SpiralSm.format_exception}"),
>                         acc_errors |> Array.append errors
>                 )
>         with ex ->
>             trace Critical (fun () -> $"Eval.processSpiralOutput / try 2 ex / 
> spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |> 
> SpiralSm.format_exception}") _locals
>             return
>                 Error (Exception $"Eval.processSpiralOutput / try 2 ex / 
> Exception / spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |> 
> SpiralSm.format_exception}"),
>                 [[|
>                     (
>                         TraceLevel.Critical, $"Eval.processSpiralOutput / try 2 
> ex / errors[[0]] / spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |> 
> SpiralSm.format_exception}", 0, ("", (0, 0), (0, 0))
>                     )
>                 |]]
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## tryGetPropertyValue
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let tryGetPropertyValue (propertyName: string) (obj: obj) =
>     let objType = obj.GetType ()
>     let propertyInfo = propertyName |> objType.GetProperty
>     if propertyInfo <> null
>     then propertyInfo.GetValue (obj, null) |> Some
>     else None
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## evalAsync
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec evalAsync
>     retry
>     (props : {|
>         rawCellCode: _
>         lines: _
>         isReal: _
>         builderCommands: _ array
>         isCache: _
>         timeout: _
>         cancellationToken: _
>         printCode: _
>         traceLevel: _
>         fsi_eval: _
>     |})
>     = async {
>     try
>         let cellCode, lastTopLevelIndex = prepareSpiral props.rawCellCode 
> props.lines
>         let newAllCode =
>             if props.isReal
>             then $"{allCodeReal}\n\n{cellCode}"
>             else $"{allCode}\n\n{cellCode}"
> 
>         let buildBackends =
>             if props.builderCommands.Length = 0
>             then [[| Supervisor.Fsharp |]]
>             else
>                 props.builderCommands
>                 |> Array.map (fun x ->
>                     if x |> SpiralSm.starts_with "cuda"
>                     then Supervisor.Cuda
>                     else Supervisor.Fsharp
>                 )
>                 |> Array.distinct
> 
>         trace Verbose
>             (fun () -> $"Eval.eval")
>             (fun () -> $"lastTopLevelIndex: {lastTopLevelIndex} / 
> builderCommands: %A{props.builderCommands} / buildBackends: %A{buildBackends} / 
> isReal: {props.isReal} / {_locals ()}")
> 
>         let! buildCodeResults =
>             buildBackends
>             |> Array.map (fun backend -> async {
>                 let! result =
>                     if props.isReal
>                     then Supervisor.Spir newAllCode
>                     else
>                         Supervisor.Spi
>                             (newAllCode, if allCodeReal = "" then None else Some
> allCodeReal)
>                     |> Supervisor.buildCode backend allPackages props.isCache 
> props.timeout props.cancellationToken
>                 return backend, result
>             })
>             |> Async.Parallel
>             |> Async.catch
>             |> Async.runWithTimeoutAsync props.timeout
> 
>         match buildCodeResults with
>         | Some (Ok buildCodeResults) ->
>             let! result, errors =
>                 ((Ok [[]], [[||]]), buildCodeResults)
>                 ||> Async.fold (fun acc buildCodeResult -> async {
>                     match buildCodeResult with
>                     | backend, (_, (outputPath, Some code), spiralErrors) ->
>                         let spiralErrors =
>                             allCode |> mapErrors (Warning, spiralErrors, 
> lastTopLevelIndex)
>                         let! result =
>                             processSpiralOutput
>                                 {|
>                                     printCode = props.printCode
>                                     traceLevel = props.traceLevel
>                                     builderCommands = props.builderCommands
>                                     lastTopLevelIndex = lastTopLevelIndex
>                                     backend = backend
>                                     cancellationToken = props.cancellationToken
>                                     spiralErrors = spiralErrors
>                                     code = code
>                                     outputPath = outputPath
>                                     isReal = props.isReal
>                                 |}
>                         match result, acc with
>                         | (Ok code, errors), (Ok acc_code, acc_errors) ->
>                             return Ok (acc_code @ code), acc_errors |> 
> Array.append errors
>                         | (Error ex, errors), _ | _, (Error ex, errors) ->
>                             return
>                                 Error (Exception $"Eval.evalAsync / 
> processSpiralOutput / Exception / buildCodeResult: %A{buildCodeResult |> 
> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / ex: {ex |> 
> SpiralSm.format_exception}"),
>                                 errors |> Array.append errors
>                     | _, (_, _, errors) when errors |> List.isEmpty |> not ->
>                         return errors.[[0]] |> fst |> Exception |> Error,
>                         allCode |> mapErrors (TraceLevel.Critical, errors, 
> lastTopLevelIndex)
>                     | _ -> return acc
>                 })
>             let cancellationToken = defaultArg props.cancellationToken 
> System.Threading.CancellationToken.None
>             match result, errors with
>             | Ok code, [[||]] ->
>                 let code, eval =
>                     code
>                     |> List.map (fun code ->
>                         if code.eval
>                         then None, Some code.code
>                         else Some code.code, None
>                     )
>                     |> List.unzip
>                 let code = code |> List.choose id
>                 let eval = eval |> List.choose id
> 
>                 trace Debug
>                     (fun () -> $"Eval.eval")
>                     (fun () -> $"eval: {eval |> FSharp.Json.Json.serialize |> 
> SpiralSm.ellipsis_end 400} / code: {code |> FSharp.Json.Json.serialize |> 
> SpiralSm.ellipsis_end 400} / {_locals ()}")
> 
>                 let ch, errors =
>                     match eval, code with
>                     | [[]], [[]] ->
>                         Choice2Of2 (Exception $"Eval.evalAsync / eval=[[]] / 
> code=[[]] / buildCodeResults: %A{buildCodeResults} / code: %A{code}"), errors
>                     | [[ eval ]], [[]] ->
>                         let ch, errors2 = props.fsi_eval eval cancellationToken
>                         let errors =
>                             errors2
>                             // |> Array.map (fun (e1, e2, e3, _) ->
>                             //     (e1, e2, e3, ("", (0, 0), (0, 0)))
>                             // )
>                             |> Array.append errors
>                         ch, errors
>                     | [[]], _ ->
>                         let code = code |> List.rev |> String.concat "\n\n"
>                         let code =
>                             if props.printCode
>                             then $"\"\"\"{code}\n\n\"\"\""
>                             else $"\"\"\"{code}\n\"\"\""
>                         let ch, errors2 = props.fsi_eval code cancellationToken
>                         let errors =
>                             errors2
>                             // |> Array.map (fun (e1, e2, e3, _) ->
>                             //     (e1, e2, e3, ("", (0, 0), (0, 0)))
>                             // )
>                             |> Array.append errors
>                         ch, errors
>                     | _ ->
>                         let code, errors =
>                             ((Ok (code |> List.rev), [[||]]), eval)
>                             ||> List.fold (fun (acc, acc_errors) eval ->
>                                 match acc with
>                                 | Error ch -> Error ch, acc_errors
>                                 | Ok acc ->
>                                     let ch, errors = props.fsi_eval eval 
> cancellationToken
>                                     let errors =
>                                         errors
>                                         // |> Array.map (fun (e1, e2, e3, _) ->
>                                         //     (e1, e2, e3, ("", (0, 0), (0, 
> 0)))
>                                         // )
>                                         |> Array.append acc_errors
>                                     match ch with
>                                     | Choice1Of2 v ->
>                                         let v =
>                                             v
>                                             |> tryGetPropertyValue 
> "ReflectionValue"
>                                             |> Option.map (fun x -> $"%A{x}")
>                                             |> Option.defaultValue ""
>                                         Ok (v :: acc), errors
>                                     | Choice2Of2 ex ->
>                                         trace Critical (fun () -> 
> $"Eval.evalAsync / fsi_eval fold Choice error / buildCodeResults: 
> %A{buildCodeResults} / ex: {ex |> SpiralSm.format_exception}") _locals
>                                         Error ch, errors
>                             )
>                         match code with
>                         | Error ch -> ch, errors
>                         | Ok code ->
>                             let code =
>                                 code
>                                 |> List.filter ((<>) "")
>                                 |> String.concat "\n\n"
> 
>                             let code =
>                                 if props.builderCommands.Length > 0 && 
> eval.Length = 0
>                                 then code
>                                 elif code |> SpiralSm.contains "\n\n\n"
>                                 then $"{code}\n\n"
>                                 else $"{code}\n"
> 
>                             let code =
>                                 if props.printCode
>                                 then $"\"\"\"{code}\n\n\n\"\"\""
>                                 else $"\"\"\"{code}\n\"\"\""
>                             let ch, errors2 = props.fsi_eval code 
> cancellationToken
>                             let errors =
>                                 errors2
>                                 // |> Array.map (fun (e1, e2, e3, _) ->
>                                 //     (e1, e2, e3, ("", (0, 0), (0, 0)))
>                                 // )
>                                 |> Array.append errors
>                             ch, errors
>                 match ch with
>                 | Choice1Of2 v ->
>                     if props.isReal
>                     then allCodeReal <- newAllCode
>                     else allCode <- newAllCode
>                     return Ok(v), errors
>                 | Choice2Of2 ex ->
>                     return
>                         Error (Exception $"Eval.evalAsync / -2 / Exception / ex:
> {ex |> SpiralSm.format_exception} / buildCodeResults: {buildCodeResults |> 
> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400}"),
>                         errors
>             | Ok code, errors ->
>                 return
>                     Error (Exception "Eval.evalAsync / errors / 
> buildCodeResults: %A{buildCodeResults} / code: %A{code}"),
>                     errors
>             | Error ex, errors ->
>                 let ex = ex |> SpiralSm.format_exception
>                 if retry <= 3 &&
>                     (ex |> SpiralSm.contains "Expected one of: inl, let, union, 
> nominal, prototype, type, instance, and, open")
>                     || (ex |> SpiralSm.contains "Unexpected end of block past 
> this token.")
>                 then return! evalAsync (retry + 1) props
>                 else
>                     return
>                         Error (Exception $"Eval.evalAsync / -1 / Exception / ex:
> {ex} / buildCodeResults: {buildCodeResults |> FSharp.Json.Json.serialize |> 
> SpiralSm.ellipsis_end 1500}"),
>                         errors
>         | Some (Error ex) ->
>             trace Critical (fun () -> $"Eval.evalAsync / buildCodeResults Error 
> / buildCodeResults: %A{buildCodeResults} / ex: {ex |> 
> SpiralSm.format_exception}") _locals
>             return
>                 Error (Exception $"Eval.evalAsync / buildCodeResults Error / 
> Exception / buildCodeResults: %A{buildCodeResults} / ex: {ex |> 
> SpiralSm.format_exception}"),
>                 [[|
>                     (
>                         TraceLevel.Critical, $"Eval.evalAsync / buildCodeResults
> Error / errors[[0]] / ex: {ex |> SpiralSm.format_exception} / buildCodeResults: 
> %A{buildCodeResults}", 0, ("", (0, 0), (0, 0))
>                     )
>                 |]]
>         | _ ->
>             return
>                 Error (Exception $"Eval.evalAsync / buildCodeResults / Exception
> / buildCodeResults: %A{buildCodeResults}"),
>                 [[|
>                     (
>                         TraceLevel.Critical, $"Eval.evalAsync / buildCodeResults
> / errors[[0]] / buildCodeResults: %A{buildCodeResults}", 0, ("", (0, 0), (0, 0))
>                     )
>                 |]]
>     with ex ->
>         trace Critical (fun () -> $"Eval.evalAsync / try 1 ex / ex: {ex |> 
> SpiralSm.format_exception} / lines: %A{props.lines}") _locals
>         return
>             Error (Exception $"Eval.evalAsync / try 1 ex / Exception / ex: {ex 
> |> SpiralSm.format_exception} / lines: %A{props.lines}"),
>             [[|
>                 (
>                     TraceLevel.Critical, $"Eval.evalAsync / try 1 ex / 
> errors[[0]] / ex: {ex |> SpiralSm.format_exception} / lines: %A{props.lines}", 
> 0, ("", (0, 0), (0, 0))
>                 )
>             |]]
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## eval
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline eval
>     (fsi_eval:
>         string
>         -> System.Threading.CancellationToken
>         -> Choice<'a, Exception> * (TraceLevel * string * int * (string * (int *
> int) * (int * int))) array)
>     (cancellationToken: Option<System.Threading.CancellationToken>)
>     (code: string)
>     =
>     trace Verbose
>         (fun () -> $"Eval.eval")
>         (fun () -> $"code: {code |> SpiralSm.ellipsis_end 400} / {_locals ()}")
> 
>     let rawCellCode =
>         code |> SpiralSm.replace "\r\n" "\n"
> 
>     let lines = rawCellCode |> SpiralSm.split "\n"
> 
>     if lines |> Array.exists (fun line -> line |> SpiralSm.starts_with "#r " && 
> line |> SpiralSm.ends_with "\"") then
>         let cancellationToken = defaultArg cancellationToken 
> System.Threading.CancellationToken.None
>         let ch, errors = fsi_eval code cancellationToken
>         trace Verbose (fun () -> $"Eval.eval / fsi_eval 1 / ch: %A{ch} / errors:
> %A{errors}") _locals
>         match ch with
>         | Choice1Of2 v -> Ok(v), errors
>         | Choice2Of2 ex -> Error(ex), errors
>     else
>         let builderCommands =
>             lines
>             |> Array.choose (fun line ->
>                 if line |> SpiralSm.starts_with "///! "
>                 then line |> SpiralSm.split "///! " |> Array.tryItem 1
>                 else None
>             )
> 
>         let packages =
>             lines
>             |> Array.choose (fun line ->
>                 if line |> SpiralSm.starts_with "//// package="
>                 then line |> SpiralSm.split "=" |> Array.skip 1 |> 
> SpiralSm.concat "" |> Some
>                 else None
>             )
> 
>         allPackages <- packages |> Array.append allPackages |> Array.distinct
> 
>         let timeout =
>             lines
>             |> Array.tryPick (fun line ->
>                 if line |> SpiralSm.starts_with "//// timeout="
>                 then line |> SpiralSm.split "=" |> Array.tryItem 1 |> Option.map
> int
>                 else None
>             )
>             |> Option.defaultValue (60000 * 60)
> 
>         let boolArg def command =
>             lines
>             |> Array.tryPick (fun line ->
>                 let text = $"//// {command}"
>                 match line.[[0..text.Length-1]], line.[[text.Length..]] with
>                 | head, "" when head = text ->
>                     Some true
>                 | head, _ when head = text ->
>                     line |> SpiralSm.split "=" |> Array.tryItem 1 |> Option.map 
> ((<>) "false")
>                 | _ -> None
>             )
>             |> Option.defaultValue def
> 
>         let printCode = "print_code" |> boolArg false
>         let isTraceToggle = "trace_toggle" |> boolArg false
>         let isTrace = "trace" |> boolArg false
>         let isCache = "cache" |> boolArg false
>         let isReal = "real" |> boolArg false
>         let timeout_continue = "timeout_continue" |> boolArg false
> 
>         if isTraceToggle
>         then traceToggle <- not traceToggle
> 
>         let oldLevel = get_trace_level ()
>         let traceLevel =
>             if isTrace || traceToggle
>             then Verbose
>             else Info
>         traceLevel
>         |> to_trace_level
>         |> set_trace_level
>         use _ = (new_disposable (fun () ->
>             oldLevel |> set_trace_level
>         ))
> 
>         evalAsync 1
>             {|
>                 rawCellCode = rawCellCode
>                 lines = lines
>                 isReal = isReal
>                 builderCommands = builderCommands
>                 isCache = isCache
>                 timeout = timeout
>                 cancellationToken = cancellationToken
>                 printCode = printCode
>                 traceLevel = traceLevel
>                 fsi_eval = fsi_eval
>             |}
>         |> Async.runWithTimeout timeout
>         |> (fun x ->
>             match x with
>             | Some ((Ok x), a) -> Some ((Ok x), a)
>             | Some ((Error x), a) ->
>                 trace Info (fun () -> $"Eval.eval / error / exception: 
> {x.GetType().FullName} / a: %A{a} / x: %A{x}") (fun () -> "")
>                 Some ((Error x), a)
>             | _ -> None
>         )
>         |> Option.defaultWith (fun () -> (
>             let lines = lines |> SpiralSm.concat (string '\n') |> 
> SpiralSm.ellipsis_end 1500
>             in
>             Error (Exception $"Eval.eval / Async.runWithTimeout / Exception / 
> timeout: {timeout} / timeout_continue: {timeout_continue} / lines: {lines}"),
>             [[|
>                 (
>                     TraceLevel.Critical, $"Eval.eval / Async.runWithTimeout / 
> errors[[0]] / timeout: {timeout} / lines: {lines}", 0, ("", (0, 0), (0, 0))
>                 )
>             |]]
>         ))
00:00:19 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 50071 }
00:00:19 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:20 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb to html
00:00:20 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:20 v #7 !   validate(nb)
00:00:20 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:20 v #9 !   return _pygments_highlight(
00:00:21 v #10 ! [NbConvertApp] Writing 459256 bytes to /home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.html
00:00:21 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 894 }
00:00:21 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 894 }
00:00:21 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 51024 }
00:00:00 d #1 writeDibCode / output: Fs / path: Eval.dib
00:00:00 d #2 parseDibCode / output: Fs / file: Eval.dib
In [ ]:
{ pwsh ../lib/fsharp/build.ps1 -sequential 1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Async.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Async.dib", "--retries", "3"])) }
00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:02 v #10 > >
00:00:02 v #11 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #12 > > │ # Async (Polyglot)
00:00:14 v #13 > >
00:00:14 v #14 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #15 > > #if !INTERACTIVE
00:00:14 v #16 > > open Lib
00:00:14 v #17 > > #endif
00:00:14 v #18 > >
00:00:14 v #19 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #20 > > open Common
00:00:14 v #21 > >
00:00:14 v #22 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:14 v #23 > > │ ## choice
00:00:14 v #24 > >
00:00:14 v #25 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #26 > > let inline choice asyncs = async {
00:00:14 v #27 > >     let e = Event<_> ()
00:00:14 v #28 > >     use cts = new System.Threading.CancellationTokenSource ()
00:00:14 v #29 > >     let fn =
00:00:14 v #30 > >         asyncs
00:00:14 v #31 > >         |> Seq.map (fun a -> async {
00:00:14 v #32 > >             let! x = a
00:00:14 v #33 > >             e.Trigger x
00:00:14 v #34 > >         })
00:00:14 v #35 > >         |> Async.Parallel
00:00:14 v #36 > >         |> Async.Ignore
00:00:14 v #37 > >     Async.Start (fn, cts.Token)
00:00:14 v #38 > >     let! result = Async.AwaitEvent e.Publish
00:00:14 v #39 > >     cts.Cancel ()
00:00:14 v #40 > >     return result
00:00:14 v #41 > > }
00:00:14 v #42 > >
00:00:14 v #43 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:14 v #44 > > │ ## map
00:00:14 v #45 > >
00:00:14 v #46 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #47 > > let inline map fn a = async {
00:00:14 v #48 > >     let! x = a
00:00:14 v #49 > >     return fn x
00:00:14 v #50 > > }
00:00:14 v #51 > >
00:00:14 v #52 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:14 v #53 > > │ ## runWithTimeoutChoiceAsync
00:00:14 v #54 > >
00:00:14 v #55 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #56 > > let inline runWithTimeoutChoiceAsync (timeout : int) fn =
00:00:14 v #57 > >     let _locals () = $"timeout: {timeout} / {_locals ()}"
00:00:14 v #58 > >
00:00:14 v #59 > >     let timeoutTask = async {
00:00:14 v #60 > >         do! Async.Sleep timeout
00:00:14 v #61 > >         trace Debug (fun () -> "runWithTimeoutChoiceAsync") _locals
00:00:14 v #62 > >         return None
00:00:14 v #63 > >     }
00:00:14 v #64 > >
00:00:14 v #65 > >     let task = async {
00:00:14 v #66 > >         try
00:00:14 v #67 > >             let! result = fn
00:00:14 v #68 > >             return Some result
00:00:14 v #69 > >         with
00:00:14 v #70 > >         | :? System.AggregateException as ex when
00:00:14 v #71 > >             ex.InnerExceptions
00:00:14 v #72 > >             |> Seq.exists (function :?
00:00:14 v #73 > > System.Threading.Tasks.TaskCanceledException -> true | _ -> false)
00:00:14 v #74 > >             ->
00:00:14 v #75 > >             trace Warning
00:00:14 v #76 > >                 (fun () -> "runWithTimeoutChoiceAsync")
00:00:14 v #77 > >                 (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals
00:00:14 v #78 > > ()}")
00:00:14 v #79 > >             return None
00:00:14 v #80 > >         | ex ->
00:00:14 v #81 > >             trace Critical
00:00:14 v #82 > >                 (fun () -> "runWithTimeoutChoiceAsync")
00:00:14 v #83 > >                 (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals
00:00:14 v #84 > > ()}")
00:00:14 v #85 > >             return None
00:00:14 v #86 > >     }
00:00:14 v #87 > >
00:00:14 v #88 > >     [[ timeoutTask; task ]]
00:00:14 v #89 > >     |> choice
00:00:14 v #90 > >
00:00:14 v #91 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #92 > > let inline runWithTimeoutChoice timeout fn =
00:00:14 v #93 > >     fn
00:00:14 v #94 > >     |> runWithTimeoutChoiceAsync timeout
00:00:14 v #95 > >     |> Async.RunSynchronously
00:00:14 v #96 > >
00:00:14 v #97 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #98 > > //// test
00:00:14 v #99 > >
00:00:14 v #100 > > Async.Sleep 120
00:00:14 v #101 > > |> runWithTimeoutChoice 10
00:00:14 v #102 > > |> _assertEqual None
00:00:15 v #103 > >
00:00:15 v #104 > > ── [ 136.15ms - stdout ] ───────────────────────────────────────────────────────
00:00:15 v #105 > > │ 00:00:00 d #1 runWithTimeoutChoiceAsync / timeout: 10
00:00:15 v #106 > > │ <null>
00:00:15 v #107 > > │
00:00:15 v #108 > > │
00:00:15 v #109 > >
00:00:15 v #110 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #111 > > //// test
00:00:15 v #112 > >
00:00:15 v #113 > > Async.Sleep 10
00:00:15 v #114 > > |> runWithTimeoutChoice 60
00:00:15 v #115 > > |> _assertEqual (Some ())
00:00:15 v #116 > >
00:00:15 v #117 > > ── [ 137.41ms - stdout ] ───────────────────────────────────────────────────────
00:00:15 v #118 > > │ Some ()
00:00:15 v #119 > > │
00:00:15 v #120 > > │
00:00:15 v #121 > >
00:00:15 v #122 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #123 > > //// test
00:00:15 v #124 > >
00:00:15 v #125 > > async {
00:00:15 v #126 > >     raise (exn "error")
00:00:15 v #127 > > }
00:00:15 v #128 > > |> runWithTimeoutChoice 60
00:00:15 v #129 > > |> _assertEqual None
00:00:15 v #130 > >
00:00:15 v #131 > > ── [ 85.83ms - stdout ] ────────────────────────────────────────────────────────
00:00:15 v #132 > > │ 00:00:00 c #2 runWithTimeoutChoiceAsync / ex:
00:00:15 v #133 > > System.Exception: error / timeout: 60
00:00:15 v #134 > > │ <null>
00:00:15 v #135 > > │
00:00:15 v #136 > > │
00:00:15 v #137 > >
00:00:15 v #138 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:15 v #139 > > │ ## catch
00:00:15 v #140 > >
00:00:15 v #141 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #142 > > let inline catch a =
00:00:15 v #143 > >     a
00:00:15 v #144 > >     |> Async.Catch
00:00:15 v #145 > >     |> map (function
00:00:15 v #146 > >         | Choice1Of2 result -> Ok result
00:00:15 v #147 > >         | Choice2Of2 ex -> Error ex
00:00:15 v #148 > >     )
00:00:15 v #149 > >
00:00:15 v #150 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:15 v #151 > > │ ## runWithTimeoutAsync
00:00:15 v #152 > >
00:00:15 v #153 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #154 > > let inline runWithTimeoutAsync (timeout : int) fn = async {
00:00:15 v #155 > >     let _locals () = $"timeout: {timeout} / {_locals ()}"
00:00:15 v #156 > >     let! child = Async.StartChild (fn, timeout)
00:00:15 v #157 > >     return!
00:00:15 v #158 > >         child
00:00:15 v #159 > >         |> catch
00:00:15 v #160 > >         |> map (function
00:00:15 v #161 > >             | Ok result -> Some result
00:00:15 v #162 > >             | Error (:? System.TimeoutException as ex) ->
00:00:15 v #163 > >                 trace Debug (fun () -> $"Async.runWithTimeoutAsync") _locals
00:00:15 v #164 > >                 None
00:00:15 v #165 > >             | Error ex ->
00:00:15 v #166 > >                 trace Critical (fun () -> $"Async.runWithTimeoutAsync** / ex:
00:00:15 v #167 > > %A{ex}") _locals
00:00:15 v #168 > >                 None
00:00:15 v #169 > >         )
00:00:15 v #170 > > }
00:00:15 v #171 > >
00:00:15 v #172 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #173 > > let inline runWithTimeout timeout fn =
00:00:15 v #174 > >     fn
00:00:15 v #175 > >     |> runWithTimeoutAsync timeout
00:00:15 v #176 > >     |> Async.RunSynchronously
00:00:15 v #177 > >
00:00:15 v #178 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #179 > > //// test
00:00:15 v #180 > >
00:00:15 v #181 > > Async.Sleep 60
00:00:15 v #182 > > |> runWithTimeout 10
00:00:15 v #183 > > |> _assertEqual None
00:00:15 v #184 > >
00:00:15 v #185 > > ── [ 83.77ms - stdout ] ────────────────────────────────────────────────────────
00:00:15 v #186 > > │ 00:00:01 d #3 Async.runWithTimeoutAsync / timeout: 10
00:00:15 v #187 > > │ <null>
00:00:15 v #188 > > │
00:00:15 v #189 > > │
00:00:15 v #190 > >
00:00:15 v #191 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #192 > > //// test
00:00:15 v #193 > >
00:00:15 v #194 > > Async.Sleep 10
00:00:15 v #195 > > |> runWithTimeout 60
00:00:15 v #196 > > |> _assertEqual (Some ())
00:00:15 v #197 > >
00:00:15 v #198 > > ── [ 63.36ms - stdout ] ────────────────────────────────────────────────────────
00:00:15 v #199 > > │ Some ()
00:00:15 v #200 > > │
00:00:15 v #201 > > │
00:00:15 v #202 > >
00:00:15 v #203 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #204 > > //// test
00:00:15 v #205 > >
00:00:15 v #206 > > async {
00:00:15 v #207 > >     raise (exn "error")
00:00:15 v #208 > > }
00:00:15 v #209 > > |> runWithTimeout 60
00:00:15 v #210 > > |> _assertEqual None
00:00:15 v #211 > >
00:00:15 v #212 > > ── [ 66.69ms - stdout ] ────────────────────────────────────────────────────────
00:00:15 v #213 > > │ 00:00:01 c #4 Async.runWithTimeoutAsync** / ex:
00:00:15 v #214 > > System.Exception: error
00:00:15 v #215 > > │    at FSI_0036.it@4-119.Invoke(Unit unitVar)
00:00:15 v #216 > > │    at
00:00:15 v #217 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati
00:00:15 v #218 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in
00:00:15 v #219 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510
00:00:15 v #220 > > │    at
00:00:15 v #221 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in
00:00:15 v #222 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112
00:00:15 v #223 > > │ --- End of stack trace from previous location ---
00:00:15 v #224 > > │    at Microsoft.FSharp.Control.AsyncResult`1.Commit() in
00:00:15 v #225 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454
00:00:15 v #226 > > │    at
00:00:15 v #227 > > <StartupCode$FSharp-Core>.$Async.AwaitAndBindChildResult@1966-4.Invoke(Unit
00:00:15 v #228 > > unitVar) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1968
00:00:15 v #229 > > │    at
00:00:15 v #230 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati
00:00:15 v #231 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in
00:00:15 v #232 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510
00:00:15 v #233 > > │    at
00:00:15 v #234 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in
00:00:15 v #235 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 / timeout: 60
00:00:15 v #236 > > │ <null>
00:00:15 v #237 > > │
00:00:15 v #238 > > │
00:00:15 v #239 > >
00:00:15 v #240 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:15 v #241 > > │ ## runWithTimeoutStrict
00:00:15 v #242 > >
00:00:15 v #243 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #244 > > let inline runWithTimeoutStrict (timeout : int) fn =
00:00:15 v #245 > >     let _locals () = $"timeout: {timeout} / {_locals ()}"
00:00:15 v #246 > >
00:00:15 v #247 > >     let timeoutTask = async {
00:00:15 v #248 > >         do! Async.Sleep timeout
00:00:15 v #249 > >         return None, _locals
00:00:15 v #250 > >     }
00:00:15 v #251 > >
00:00:15 v #252 > >     let task = async {
00:00:15 v #253 > >         try
00:00:15 v #254 > >             return Async.RunSynchronously (fn, timeout) |> Some, _locals
00:00:15 v #255 > >         with
00:00:15 v #256 > >         | :? System.TimeoutException as ex ->
00:00:15 v #257 > >             let _locals () = $"ex: {ex |> SpiralSm.format_exception} / {_locals
00:00:15 v #258 > > ()}"
00:00:15 v #259 > >             return None, _locals
00:00:15 v #260 > >         | ex ->
00:00:15 v #261 > >             trace Critical
00:00:15 v #262 > >                 (fun () -> "Async.runWithTimeoutStrict / async error")
00:00:15 v #263 > >                 (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals
00:00:15 v #264 > > ()}")
00:00:15 v #265 > >             return raise ex
00:00:15 v #266 > >     }
00:00:15 v #267 > >
00:00:15 v #268 > >     try
00:00:15 v #269 > >         [[| timeoutTask; task |]]
00:00:15 v #270 > >         |> Array.map Async.StartAsTask
00:00:15 v #271 > >         |> System.Threading.Tasks.Task.WhenAny
00:00:15 v #272 > >         |> fun task ->
00:00:15 v #273 > >             match task.Result.Result with
00:00:15 v #274 > >             | None, _locals ->
00:00:15 v #275 > >                 trace Debug (fun () -> "runWithTimeoutStrict") _locals
00:00:15 v #276 > >                 None
00:00:15 v #277 > >             | result, _ -> result
00:00:15 v #278 > >     with
00:00:15 v #279 > >     | :? System.AggregateException as ex when
00:00:15 v #280 > >         ex.InnerExceptions
00:00:15 v #281 > >         |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException
00:00:15 v #282 > > -> true | _ -> false)
00:00:15 v #283 > >         ->
00:00:15 v #284 > >         trace Warning
00:00:15 v #285 > >             (fun () -> "Async.runWithTimeoutStrict")
00:00:15 v #286 > >             (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals ()}")
00:00:15 v #287 > >         None
00:00:15 v #288 > >     | ex ->
00:00:15 v #289 > >         trace Critical
00:00:15 v #290 > >             (fun () -> "Async.runWithTimeoutStrict / task error")
00:00:15 v #291 > >             (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals ()}")
00:00:15 v #292 > >         None
00:00:15 v #293 > >
00:00:15 v #294 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #295 > > //// test
00:00:15 v #296 > >
00:00:15 v #297 > > Async.Sleep 60
00:00:15 v #298 > > |> runWithTimeoutStrict 10
00:00:15 v #299 > > |> _assertEqual None
00:00:15 v #300 > >
00:00:15 v #301 > > ── [ 95.06ms - stdout ] ────────────────────────────────────────────────────────
00:00:15 v #302 > > │ 00:00:01 d #5 runWithTimeoutStrict / timeout: 10
00:00:15 v #303 > > │ <null>
00:00:15 v #304 > > │
00:00:15 v #305 > > │
00:00:15 v #306 > >
00:00:15 v #307 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #308 > > //// test
00:00:15 v #309 > >
00:00:15 v #310 > > Async.Sleep 10
00:00:15 v #311 > > |> runWithTimeoutStrict 60
00:00:15 v #312 > > |> _assertEqual (Some ())
00:00:15 v #313 > >
00:00:15 v #314 > > ── [ 89.10ms - stdout ] ────────────────────────────────────────────────────────
00:00:15 v #315 > > │ Some ()
00:00:15 v #316 > > │
00:00:15 v #317 > > │
00:00:15 v #318 > >
00:00:15 v #319 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 v #320 > > //// test
00:00:15 v #321 > >
00:00:15 v #322 > > async {
00:00:15 v #323 > >     raise (exn "error")
00:00:15 v #324 > > }
00:00:15 v #325 > > |> runWithTimeoutStrict 60
00:00:15 v #326 > > |> _assertEqual None
00:00:16 v #327 > >
00:00:16 v #328 > > ── [ 87.30ms - stdout ] ────────────────────────────────────────────────────────
00:00:16 v #329 > > │ 00:00:01 c #6 Async.runWithTimeoutStrict / async error
00:00:16 v #330 > > ex: System.Exception: error / timeout: 60
00:00:16 v #331 > > │ 00:00:01 c #7 Async.runWithTimeoutStrict / task error
00:00:16 v #332 > > ex: System.AggregateException: One or more errors occurred. (error) / timeout:
00:00:16 v #333 > > 60
00:00:16 v #334 > > │ <null>
00:00:16 v #335 > > │
00:00:16 v #336 > > │
00:00:16 v #337 > >
00:00:16 v #338 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:16 v #339 > > │ ## awaitValueTask
00:00:16 v #340 > >
00:00:16 v #341 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #342 > > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) =
00:00:16 v #343 > >     task.AsTask () |> Async.AwaitTask
00:00:16 v #344 > >
00:00:16 v #345 > > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) =
00:00:16 v #346 > >     task.AsTask () |> Async.AwaitTask
00:00:16 v #347 > >
00:00:16 v #348 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:16 v #349 > > │ ## init
00:00:16 v #350 > >
00:00:16 v #351 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #352 > > let inline init x = async {
00:00:16 v #353 > >     return x
00:00:16 v #354 > > }
00:00:16 v #355 > >
00:00:16 v #356 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #357 > > //// test
00:00:16 v #358 > >
00:00:16 v #359 > > init 1
00:00:16 v #360 > > |> Async.RunSynchronously
00:00:16 v #361 > > |> _assertEqual 1
00:00:16 v #362 > >
00:00:16 v #363 > > ── [ 19.63ms - stdout ] ────────────────────────────────────────────────────────
00:00:16 v #364 > > │ 1
00:00:16 v #365 > > │
00:00:16 v #366 > > │
00:00:16 v #367 > >
00:00:16 v #368 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:16 v #369 > > │ ## withCancellationToken
00:00:16 v #370 > >
00:00:16 v #371 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #372 > > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn =
00:00:16 v #373 > >     Async.StartImmediateAsTask (fn, ct)
00:00:16 v #374 > >     |> Async.AwaitTask
00:00:16 v #375 > >
00:00:16 v #376 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #377 > > //// test
00:00:16 v #378 > >
00:00:16 v #379 > > let cts = new System.Threading.CancellationTokenSource ()
00:00:16 v #380 > >
00:00:16 v #381 > > async {
00:00:16 v #382 > >     let run = async {
00:00:16 v #383 > >         do! Async.Sleep 100
00:00:16 v #384 > >         return 1
00:00:16 v #385 > >     }
00:00:16 v #386 > >
00:00:16 v #387 > >     let! child =
00:00:16 v #388 > >         run
00:00:16 v #389 > >         |> withCancellationToken cts.Token
00:00:16 v #390 > >         |> catch
00:00:16 v #391 > >         |> Async.StartChild
00:00:16 v #392 > >
00:00:16 v #393 > >     do! Async.Sleep 50
00:00:16 v #394 > >     cts.Cancel ()
00:00:16 v #395 > >     return! child
00:00:16 v #396 > > }
00:00:16 v #397 > > |> Async.RunSynchronously
00:00:16 v #398 > > |> Result.mapError _.Message
00:00:16 v #399 > > |> _assertEqual (Error ("A task was canceled."))
00:00:16 v #400 > >
00:00:16 v #401 > > ── [ 136.48ms - stdout ] ───────────────────────────────────────────────────────
00:00:16 v #402 > > │ Error "A task was canceled."
00:00:16 v #403 > > │
00:00:16 v #404 > > │
00:00:16 v #405 > >
00:00:16 v #406 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:16 v #407 > > │ ## retryAsync
00:00:16 v #408 > >
00:00:16 v #409 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #410 > > let inline retryAsync retries fn =
00:00:16 v #411 > >     let rec loop retry lastError = async {
00:00:16 v #412 > >         try
00:00:16 v #413 > >             return!
00:00:16 v #414 > >                 if retry <= retries
00:00:16 v #415 > >                 then fn |> map Ok
00:00:16 v #416 > >                 else lastError |> Error |> init
00:00:16 v #417 > >         with ex ->
00:00:16 v #418 > >             trace Debug (fun () -> $"Async.retryAsync / retry: {retry}/{retries}
00:00:16 v #419 > > / ex: {ex |> SpiralSm.format_exception}") _locals
00:00:16 v #420 > >             do! Async.Sleep 30
00:00:16 v #421 > >             return! loop (retry + 1) (ex |> SpiralSm.format_exception)
00:00:16 v #422 > >     }
00:00:16 v #423 > >     loop 1 "Async.retryAsync / invalid retries / retries: {retries}"
00:00:16 v #424 > >
00:00:16 v #425 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #426 > > //// test
00:00:16 v #427 > >
00:00:16 v #428 > > let retry_fn_test = ref 0
00:00:16 v #429 > > async {
00:00:16 v #430 > >     retry_fn_test.Value <- retry_fn_test.Value + 1
00:00:16 v #431 > >     return retry_fn_test.Value
00:00:16 v #432 > > }
00:00:16 v #433 > > |> retryAsync 3
00:00:16 v #434 > > |> Async.RunSynchronously
00:00:16 v #435 > > |> _assertEqual (Ok 1)
00:00:16 v #436 > >
00:00:16 v #437 > > ── [ 58.91ms - stdout ] ────────────────────────────────────────────────────────
00:00:16 v #438 > > │ Ok 1
00:00:16 v #439 > > │
00:00:16 v #440 > > │
00:00:16 v #441 > >
00:00:16 v #442 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #443 > > //// test
00:00:16 v #444 > >
00:00:16 v #445 > > let retry_fn_test = ref 0
00:00:16 v #446 > > async {
00:00:16 v #447 > >     return
00:00:16 v #448 > >         if retry_fn_test.Value >= 2
00:00:16 v #449 > >         then retry_fn_test.Value
00:00:16 v #450 > >         else
00:00:16 v #451 > >             retry_fn_test.Value <- retry_fn_test.Value + 1
00:00:16 v #452 > >             failwith "test"
00:00:16 v #453 > > }
00:00:16 v #454 > > |> retryAsync 3
00:00:16 v #455 > > |> Async.RunSynchronously
00:00:16 v #456 > > |> _assertEqual (Ok 2)
00:00:16 v #457 > >
00:00:16 v #458 > > ── [ 124.91ms - stdout ] ───────────────────────────────────────────────────────
00:00:16 v #459 > > │ 00:00:02 d #8 Async.retryAsync / retry: 1/3 / ex:
00:00:16 v #460 > > System.Exception: test
00:00:16 v #461 > > │ 00:00:02 d #9 Async.retryAsync / retry: 2/3 / ex:
00:00:16 v #462 > > System.Exception: test
00:00:16 v #463 > > │ Ok 2
00:00:16 v #464 > > │
00:00:16 v #465 > > │
00:00:16 v #466 > >
00:00:16 v #467 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:16 v #468 > > │ ## fold
00:00:16 v #469 > >
00:00:16 v #470 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:16 v #471 > > let fold folder state array =
00:00:16 v #472 > >     let rec loop acc i =
00:00:16 v #473 > >         async {
00:00:16 v #474 > >             if i < Array.length array then
00:00:16 v #475 > >                 let! newAcc = folder acc array.[[i]]
00:00:16 v #476 > >                 return! loop newAcc (i + 1)
00:00:16 v #477 > >             else
00:00:16 v #478 > >                 return acc
00:00:16 v #479 > >         }
00:00:16 v #480 > >     loop state 0
00:00:16 v #481 > 00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 15919 }
00:00:16 v #482 > 00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:17 v #483 > 00:00:16 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb to html
00:00:17 v #484 > 00:00:16 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:17 v #485 > 00:00:16 v #7 !   validate(nb)
00:00:17 v #486 > 00:00:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:17 v #487 > 00:00:16 v #9 !   return _pygments_highlight(
00:00:17 v #488 > 00:00:16 v #10 ! [NbConvertApp] Writing 332803 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.html
00:00:18 v #489 > 00:00:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 894 }
00:00:18 v #490 > 00:00:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 894 }
00:00:18 v #491 > 00:00:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:18 v #492 > 00:00:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:18 v #493 > 00:00:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:18 v #494 > 00:00:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 16872 }
00:00:18 d #495 runtime.execute_with_options_async / { exit_code = 0; output_length = 20460 }
00:00:18 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Async.dib --retries 3
00:00:18 d #496 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path AsyncSeq.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path AsyncSeq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:18 v #497 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "AsyncSeq.dib", "--retries", "3"])) }
00:00:18 v #498 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:19 v #499 > >
00:00:19 v #500 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:19 v #501 > > │ # AsyncSeq (Polyglot)
00:00:32 v #502 > >
00:00:32 v #503 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:32 v #504 > > #r
00:00:32 v #505 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:00:32 v #506 > > dard2.1/FSharp.Control.AsyncSeq.dll"
00:00:32 v #507 > > #r
00:00:32 v #508 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:00:32 v #509 > > 0/System.Reactive.dll"
00:00:32 v #510 > > #r
00:00:32 v #511 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:00:32 v #512 > > netstandard2.0/System.Reactive.Linq.dll"
00:00:32 v #513 > >
00:00:32 v #514 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:32 v #515 > > #if !INTERACTIVE
00:00:32 v #516 > > open Lib
00:00:32 v #517 > > #endif
00:00:32 v #518 > >
00:00:32 v #519 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:32 v #520 > > open Common
00:00:32 v #521 > >
00:00:32 v #522 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:32 v #523 > > │ ## subscribeEvent
00:00:32 v #524 > >
00:00:32 v #525 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:32 v #526 > > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:00:32 v #527 > >     let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:00:32 v #528 > > 'A>(event.AddHandler, event.RemoveHandler)
00:00:32 v #529 > >     System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:00:32 v #530 > > event.EventArgs)
00:00:32 v #531 > >     |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:00:32 v #532 > >
00:00:32 v #533 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:32 v #534 > > //// test
00:00:32 v #535 > >
00:00:32 v #536 > > type TestEvent () as self =
00:00:32 v #537 > >     member val Calls = [[]] with get, set
00:00:32 v #538 > >     member val Event = Event<ErrorEventHandler, ErrorEventArgs> () with get
00:00:32 v #539 > >
00:00:32 v #540 > >     member _.AddCall text =
00:00:32 v #541 > >         self.Calls <- self.Calls @ [[ text ]]
00:00:32 v #542 > >
00:00:32 v #543 > >     member _.EventInterface =
00:00:32 v #544 > >         { new IEvent<ErrorEventHandler, ErrorEventArgs> with
00:00:32 v #545 > >             member _.AddHandler handler =
00:00:32 v #546 > >                 self.AddCall "AddHandler"
00:00:32 v #547 > >                 self.Event.Publish.AddHandler handler
00:00:32 v #548 > >
00:00:32 v #549 > >             member _.RemoveHandler handler =
00:00:32 v #550 > >                 self.AddCall "RemoveHandler"
00:00:32 v #551 > >                 self.Event.Publish.RemoveHandler handler
00:00:32 v #552 > >
00:00:32 v #553 > >             member _.Subscribe observer =
00:00:32 v #554 > >                 self.AddCall "IObservable.Subscribe"
00:00:32 v #555 > >                 let disposable = self.Event.Publish.Subscribe observer
00:00:32 v #556 > >                 new_disposable (fun () ->
00:00:32 v #557 > >                     self.AddCall "IObservable.Dispose"
00:00:32 v #558 > >                     disposable.Dispose ()
00:00:32 v #559 > >                 )
00:00:32 v #560 > >         }
00:00:32 v #561 > >
00:00:32 v #562 > >     member _.Subscribe () =
00:00:32 v #563 > >         subscribeEvent
00:00:32 v #564 > >             self.EventInterface
00:00:32 v #565 > >             (fun args ->
00:00:32 v #566 > >                 let result = args.GetException () |> SpiralSm.format_exception
00:00:32 v #567 > >                 self.AddCall $"TestEvent.Subscribe({result})"
00:00:32 v #568 > >                 result
00:00:32 v #569 > >             )
00:00:32 v #570 > >
00:00:32 v #571 > >     member _.Iter subscription =
00:00:32 v #572 > >         subscription
00:00:32 v #573 > >         |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async {
00:00:32 v #574 > >             self.AddCall $"TestEvent.Iter({i}: {error})"
00:00:32 v #575 > >         })
00:00:32 v #576 > >
00:00:32 v #577 > >     member _.WaitCall text = async {
00:00:32 v #578 > >         while self.Calls |> List.last <> text do
00:00:32 v #579 > >             do! Async.SwitchToThreadPool ()
00:00:32 v #580 > >     }
00:00:32 v #581 > >
00:00:32 v #582 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:32 v #583 > > //// test
00:00:32 v #584 > >
00:00:32 v #585 > > let testEvent = TestEvent ()
00:00:32 v #586 > >
00:00:32 v #587 > > async {
00:00:32 v #588 > >     testEvent.AddCall "1"
00:00:32 v #589 > >     let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:32 v #590 > >     do! testEvent.WaitCall "AddHandler"
00:00:32 v #591 > >     testEvent.AddCall "2"
00:00:32 v #592 > >     do! child
00:00:32 v #593 > >     testEvent.AddCall "3"
00:00:32 v #594 > > }
00:00:32 v #595 > > |> Async.runWithTimeout 300
00:00:32 v #596 > > |> _assertEqual None
00:00:32 v #597 > >
00:00:32 v #598 > > testEvent.Calls
00:00:32 v #599 > > |> Seq.toList
00:00:32 v #600 > > |> _assertEqual [[ "1"; "AddHandler"; "2"; "RemoveHandler" ]]
00:00:33 v #601 > >
00:00:33 v #602 > > ── [ 452.53ms - stdout ] ───────────────────────────────────────────────────────
00:00:33 v #603 > > │ 00:00:01 d #1 Async.runWithTimeoutAsync / timeout: 300
00:00:33 v #604 > > │ <null>
00:00:33 v #605 > > │
00:00:33 v #606 > > │ ["1"; "AddHandler"; "2"; "RemoveHandler"]
00:00:33 v #607 > > │
00:00:33 v #608 > > │
00:00:33 v #609 > >
00:00:33 v #610 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:33 v #611 > > //// test
00:00:33 v #612 > >
00:00:33 v #613 > > let testEvent = TestEvent ()
00:00:33 v #614 > >
00:00:33 v #615 > > async {
00:00:33 v #616 > >     testEvent.AddCall "1"
00:00:33 v #617 > >     let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:33 v #618 > >     do! testEvent.WaitCall "AddHandler"
00:00:33 v #619 > >     testEvent.AddCall "2"
00:00:33 v #620 > >     use _ = testEvent.EventInterface.Subscribe (fun args ->
00:00:33 v #621 > >         testEvent.AddCall $"testEvent.EventInterface.Subscribe({args})"
00:00:33 v #622 > >     )
00:00:33 v #623 > >     testEvent.AddCall "3"
00:00:33 v #624 > >     do! child
00:00:33 v #625 > >     testEvent.AddCall "4"
00:00:33 v #626 > > }
00:00:33 v #627 > > |> Async.runWithTimeout 300
00:00:33 v #628 > > |> _assertEqual None
00:00:33 v #629 > >
00:00:33 v #630 > > testEvent.Calls
00:00:33 v #631 > > |> _assertEqual [[ "1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3";
00:00:33 v #632 > > "RemoveHandler"; "IObservable.Dispose" ]]
00:00:33 v #633 > >
00:00:33 v #634 > > ── [ 384.13ms - stdout ] ───────────────────────────────────────────────────────
00:00:33 v #635 > > │ 00:00:01 d #2 Async.runWithTimeoutAsync / timeout: 300
00:00:33 v #636 > > │ <null>
00:00:33 v #637 > > │
00:00:33 v #638 > > │ ["1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3";
00:00:33 v #639 > > "RemoveHandler"; "IObservable.Dispose"]
00:00:33 v #640 > > │
00:00:33 v #641 > > │
00:00:33 v #642 > >
00:00:33 v #643 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:33 v #644 > > //// test
00:00:33 v #645 > >
00:00:33 v #646 > > let testEvent = TestEvent ()
00:00:33 v #647 > >
00:00:33 v #648 > > async {
00:00:33 v #649 > >     testEvent.AddCall "1"
00:00:33 v #650 > >     let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:33 v #651 > >     do! testEvent.WaitCall "AddHandler"
00:00:33 v #652 > >     testEvent.AddCall "2"
00:00:33 v #653 > >     use _ = testEvent.EventInterface.Subscribe (fun args ->
00:00:33 v #654 > >         async {
00:00:33 v #655 > >             do! testEvent.WaitCall "TestEvent.Iter(0: System.Exception: error)"
00:00:33 v #656 > >             testEvent.AddCall
00:00:33 v #657 > > $"testEvent.EventInterface.Subscribe({args.GetException () |>
00:00:33 v #658 > > SpiralSm.format_exception})"
00:00:33 v #659 > >         }
00:00:33 v #660 > >         |> Async.RunSynchronously
00:00:33 v #661 > >     )
00:00:33 v #662 > >     testEvent.AddCall "3"
00:00:33 v #663 > >     testEvent.Event.Trigger (null, ErrorEventArgs (Exception "error"))
00:00:33 v #664 > >     testEvent.AddCall "4"
00:00:33 v #665 > >     do! child
00:00:33 v #666 > >     testEvent.AddCall "5"
00:00:33 v #667 > > }
00:00:33 v #668 > > |> Async.runWithTimeout 300
00:00:33 v #669 > > |> _assertEqual None
00:00:33 v #670 > >
00:00:33 v #671 > > testEvent.Calls
00:00:33 v #672 > > |> _assertEqual [[
00:00:33 v #673 > >     "1"
00:00:33 v #674 > >     "AddHandler"
00:00:33 v #675 > >     "2"
00:00:33 v #676 > >     "IObservable.Subscribe"
00:00:33 v #677 > >     "3"
00:00:33 v #678 > >     "TestEvent.Subscribe(System.Exception: error)"
00:00:33 v #679 > >     "TestEvent.Iter(0: System.Exception: error)"
00:00:33 v #680 > >     "testEvent.EventInterface.Subscribe(System.Exception: error)"
00:00:33 v #681 > >     "4"
00:00:33 v #682 > >     "RemoveHandler"
00:00:33 v #683 > >     "IObservable.Dispose"
00:00:33 v #684 > > ]]
00:00:34 v #685 > >
00:00:34 v #686 > > ── [ 399.87ms - stdout ] ───────────────────────────────────────────────────────
00:00:34 v #687 > > │ 00:00:02 d #3 Async.runWithTimeoutAsync / timeout: 300
00:00:34 v #688 > > │ <null>
00:00:34 v #689 > > │
00:00:34 v #690 > > │ ["1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3";
00:00:34 v #691 > > "TestEvent.Subscribe(System.Exception: error)";
00:00:34 v #692 > > │  "TestEvent.Iter(0: System.Exception: error)";
00:00:34 v #693 > > "testEvent.EventInterface.Subscribe(System.Exception: error)"; "4";
00:00:34 v #694 > > │  "RemoveHandler"; "IObservable.Dispose"]
00:00:34 v #695 > > │
00:00:34 v #696 > > │
00:00:34 v #697 > >
00:00:34 v #698 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:34 v #699 > > │ ## subscribeToken
00:00:34 v #700 > >
00:00:34 v #701 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:34 v #702 > > let subscribeToken (token : System.Threading.CancellationToken) =
00:00:34 v #703 > >     let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:00:34 v #704 > >     System.Action tcs.SetResult |> token.Register |> ignore
00:00:34 v #705 > >     let start = System.DateTime.Now.Ticks
00:00:34 v #706 > >     FSharp.Control.AsyncSeq.unfoldAsync
00:00:34 v #707 > >         (fun () -> async {
00:00:34 v #708 > >             do! tcs.Task |> Async.AwaitTask
00:00:34 v #709 > >             return Some (System.DateTime.Now.Ticks - start, ())
00:00:34 v #710 > >         })
00:00:34 v #711 > >         ()
00:00:34 v #712 > >
00:00:34 v #713 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:34 v #714 > > //// test
00:00:34 v #715 > >
00:00:34 v #716 > > let cts = new System.Threading.CancellationTokenSource ()
00:00:34 v #717 > >
00:00:34 v #718 > > async {
00:00:34 v #719 > >     let! child =
00:00:34 v #720 > >         cts.Token
00:00:34 v #721 > >         |> subscribeToken
00:00:34 v #722 > >         |> FSharp.Control.AsyncSeq.tryFirst
00:00:34 v #723 > >         |> Async.StartChild
00:00:34 v #724 > >
00:00:34 v #725 > >     do! Async.Sleep 100
00:00:34 v #726 > >     cts.Cancel ()
00:00:34 v #727 > >     return! child
00:00:34 v #728 > > }
00:00:34 v #729 > > |> Async.RunSynchronously
00:00:34 v #730 > > |> Option.get
00:00:34 v #731 > > |> fun x -> x > 900000
00:00:34 v #732 > > |> _assertEqual true
00:00:34 v #733 > >
00:00:34 v #734 > > ── [ 142.26ms - stdout ] ───────────────────────────────────────────────────────
00:00:34 v #735 > > │ true
00:00:34 v #736 > > │
00:00:34 v #737 > > │
00:00:34 v #738 > 00:00:16 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 8097 }
00:00:34 v #739 > 00:00:16 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:35 v #740 > 00:00:16 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb to html
00:00:35 v #741 > 00:00:16 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:35 v #742 > 00:00:16 v #7 !   validate(nb)
00:00:35 v #743 > 00:00:17 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:35 v #744 > 00:00:17 v #9 !   return _pygments_highlight(
00:00:35 v #745 > 00:00:17 v #10 ! [NbConvertApp] Writing 303150 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.html
00:00:35 v #746 > 00:00:17 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 900 }
00:00:35 v #747 > 00:00:17 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 900 }
00:00:35 v #748 > 00:00:17 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:36 v #749 > 00:00:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:36 v #750 > 00:00:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:36 v #751 > 00:00:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 9056 }
00:00:36 d #752 runtime.execute_with_options_async / { exit_code = 0; output_length = 12205 }
00:00:36 d #4 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path AsyncSeq.dib --retries 3
00:00:36 d #753 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Common.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:36 v #754 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Common.dib", "--retries", "3"])) }
00:00:36 v #755 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:37 v #756 > >
00:00:37 v #757 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:37 v #758 > > │ # Common (Polyglot)
00:00:50 v #759 > >
00:00:50 v #760 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:50 v #761 > > #if !INTERACTIVE
00:00:50 v #762 > > open Lib
00:00:50 v #763 > > #endif
00:00:50 v #764 > >
00:00:50 v #765 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:50 v #766 > > let nl = System.Environment.NewLine
00:00:50 v #767 > > let q = @""""
00:00:50 v #768 > >
00:00:50 v #769 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:50 v #770 > > let inline cons head tail = head :: tail
00:00:50 v #771 > >
00:00:50 v #772 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 v #773 > > │ ## memoize
00:00:50 v #774 > >
00:00:50 v #775 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:50 v #776 > > let inline memoize fn =
00:00:50 v #777 > >     let result = lazy fn ()
00:00:50 v #778 > >     fun () -> result.Value
00:00:50 v #779 > >
00:00:50 v #780 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 v #781 > > │ ## TraceLevel
00:00:50 v #782 > >
00:00:50 v #783 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:50 v #784 > > type TraceLevel =
00:00:50 v #785 > >     | Verbose
00:00:50 v #786 > >     | Debug
00:00:50 v #787 > >     | Info
00:00:50 v #788 > >     | Warning
00:00:50 v #789 > >     | Critical
00:00:50 v #790 > >
00:00:50 v #791 > > let inline _locals () = ""
00:00:50 v #792 > >
00:00:50 v #793 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 v #794 > > │ ## trace
00:00:50 v #795 > >
00:00:50 v #796 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:50 v #797 > > let to_trace_level = function
00:00:50 v #798 > >     | Verbose -> SpiralTrace.TraceLevel.US0_0
00:00:50 v #799 > >     | Debug -> SpiralTrace.TraceLevel.US0_1
00:00:50 v #800 > >     | Info -> SpiralTrace.TraceLevel.US0_2
00:00:50 v #801 > >     | Warning -> SpiralTrace.TraceLevel.US0_3
00:00:50 v #802 > >     | Critical -> SpiralTrace.TraceLevel.US0_4
00:00:50 v #803 > >
00:00:50 v #804 > > let trace level fn locals =
00:00:50 v #805 > >     let level = level |> to_trace_level
00:00:50 v #806 > >     SpiralTrace.trace level fn locals
00:00:50 v #807 > >
00:00:50 v #808 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:50 v #809 > > //// test
00:00:50 v #810 > >
00:00:50 v #811 > > trace Debug (fun () -> "test") _locals
00:00:50 v #812 > >
00:00:50 v #813 > > ── [ 15.43ms - stdout ] ────────────────────────────────────────────────────────
00:00:50 v #814 > > │ 00:00:00 d #1 test
00:00:50 v #815 > > │
00:00:50 v #816 > 00:00:14 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 2118 }
00:00:50 v #817 > 00:00:14 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:51 v #818 > 00:00:15 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb to html
00:00:51 v #819 > 00:00:15 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:51 v #820 > 00:00:15 v #7 !   validate(nb)
00:00:51 v #821 > 00:00:15 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:51 v #822 > 00:00:15 v #9 !   return _pygments_highlight(
00:00:51 v #823 > 00:00:15 v #10 ! [NbConvertApp] Writing 280765 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.html
00:00:51 v #824 > 00:00:15 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 896 }
00:00:51 v #825 > 00:00:15 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 896 }
00:00:51 v #826 > 00:00:15 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:52 v #827 > 00:00:16 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:52 v #828 > 00:00:16 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:52 v #829 > 00:00:16 d #16 spiral.run / dib / { exit_code = 0; result_length = 3073 }
00:00:52 d #830 runtime.execute_with_options_async / { exit_code = 0; output_length = 5846 }
00:00:52 d #5 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Common.dib --retries 3
00:00:52 d #831 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path CommonFSharp.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path CommonFSharp.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:52 v #832 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "CommonFSharp.dib", "--retries", "3"])) }
00:00:52 v #833 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:53 v #834 > >
00:00:53 v #835 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:53 v #836 > > │ # CommonFSharp (Polyglot)
00:01:05 v #837 > >
00:01:05 v #838 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:05 v #839 > > open Common
00:01:05 v #840 > >
00:01:05 v #841 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:05 v #842 > > │ ## getUnionCaseName
00:01:05 v #843 > >
00:01:05 v #844 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:05 v #845 > > let inline getUnionCaseName<'T> (x: 'T) =
00:01:05 v #846 > >     match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:01:05 v #847 > >     | case, _ -> case.Name
00:01:05 v #848 > >
00:01:05 v #849 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:05 v #850 > > //// test
00:01:05 v #851 > >
00:01:05 v #852 > > TraceLevel.Critical
00:01:05 v #853 > > |> getUnionCaseName
00:01:05 v #854 > > |> _assertEqual (nameof TraceLevel.Critical)
00:01:06 v #855 > >
00:01:06 v #856 > > ── [ 52.46ms - stdout ] ────────────────────────────────────────────────────────
00:01:06 v #857 > > │ "Critical"
00:01:06 v #858 > > │
00:01:06 v #859 > > │
00:01:06 v #860 > 00:00:13 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 1002 }
00:01:06 v #861 > 00:00:13 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:01:06 v #862 > 00:00:14 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb to html
00:01:06 v #863 > 00:00:14 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:06 v #864 > 00:00:14 v #7 !   validate(nb)
00:01:07 v #865 > 00:00:15 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:07 v #866 > 00:00:15 v #9 !   return _pygments_highlight(
00:01:07 v #867 > 00:00:15 v #10 ! [NbConvertApp] Writing 275628 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.html
00:01:07 v #868 > 00:00:15 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 908 }
00:01:07 v #869 > 00:00:15 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 908 }
00:01:07 v #870 > 00:00:15 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:01:07 v #871 > 00:00:15 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:01:07 v #872 > 00:00:15 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:01:07 v #873 > 00:00:15 d #16 spiral.run / dib / { exit_code = 0; result_length = 1969 }
00:01:07 d #874 runtime.execute_with_options_async / { exit_code = 0; output_length = 4728 }
00:01:07 d #6 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path CommonFSharp.dib --retries 3
00:01:07 d #875 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path FileSystem.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path FileSystem.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:01:07 v #876 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "FileSystem.dib", "--retries", "3"])) }
00:01:07 v #877 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:01:09 v #878 > >
00:01:09 v #879 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 v #880 > > │ # FileSystem (Polyglot)
00:01:11 v #881 > >
00:01:11 v #882 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:11 v #883 > > #r
00:01:11 v #884 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:01:11 v #885 > > dard2.1/FSharp.Control.AsyncSeq.dll"
00:01:11 v #886 > > #r
00:01:11 v #887 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:01:11 v #888 > > 0/System.Reactive.dll"
00:01:11 v #889 > > #r
00:01:11 v #890 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:01:11 v #891 > > netstandard2.0/System.Reactive.Linq.dll"
00:01:11 v #892 > > #r
00:01:11 v #893 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
00:01:22 v #894 > >
00:01:22 v #895 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:22 v #896 > > #if !INTERACTIVE
00:01:22 v #897 > > open Lib
00:01:22 v #898 > > #endif
00:01:22 v #899 > >
00:01:22 v #900 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:22 v #901 > > open Common
00:01:22 v #902 > > open SpiralFileSystem.Operators
00:01:22 v #903 > >
00:01:22 v #904 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:22 v #905 > > │ ## watchDirectory
00:01:22 v #906 > >
00:01:22 v #907 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:22 v #908 > > [[<RequireQualifiedAccess>]]
00:01:22 v #909 > > type FileSystemChangeType =
00:01:22 v #910 > >     | Failure
00:01:22 v #911 > >     | Changed
00:01:22 v #912 > >     | Created
00:01:22 v #913 > >     | Deleted
00:01:22 v #914 > >     | Renamed
00:01:22 v #915 > >
00:01:22 v #916 > > [[<RequireQualifiedAccess>]]
00:01:22 v #917 > > type FileSystemChange =
00:01:22 v #918 > >     | Failure of exn: exn
00:01:22 v #919 > >     | Changed of path: string * content: string option
00:01:22 v #920 > >     | Created of path: string * content: string option
00:01:22 v #921 > >     | Deleted of path: string
00:01:22 v #922 > >     | Renamed of oldPath: string * (string * string option)
00:01:22 v #923 > >
00:01:22 v #924 > >
00:01:22 v #925 > > let inline watchDirectoryWithFilter filter shouldReadContent path =
00:01:22 v #926 > >     let fullPath = path |> System.IO.Path.GetFullPath
00:01:22 v #927 > >     let _locals () = $"filter: {filter} / {_locals ()}"
00:01:22 v #928 > >
00:01:22 v #929 > >     let watcher =
00:01:22 v #930 > >         new System.IO.FileSystemWatcher (
00:01:22 v #931 > >             Path = fullPath,
00:01:22 v #932 > >             NotifyFilter = filter,
00:01:22 v #933 > >             EnableRaisingEvents = true,
00:01:22 v #934 > >             IncludeSubdirectories = true
00:01:22 v #935 > >         )
00:01:22 v #936 > >
00:01:22 v #937 > >     let inline getEventPath (path : string) =
00:01:22 v #938 > >         path |> SpiralSm.trim |> SpiralSm.replace fullPath "" |>
00:01:22 v #939 > > SpiralSm.trim_start [[| '/'; '\\' |]]
00:01:22 v #940 > >
00:01:22 v #941 > >     let inline ticks () =
00:01:22 v #942 > >         System.DateTime.UtcNow.Ticks
00:01:22 v #943 > >
00:01:22 v #944 > >     let changedStream =
00:01:22 v #945 > >         AsyncSeq.subscribeEvent
00:01:22 v #946 > >             watcher.Changed
00:01:22 v #947 > >             (fun event ->
00:01:22 v #948 > >                 ticks (),
00:01:22 v #949 > >                 [[ FileSystemChange.Changed (getEventPath event.FullPath, None)
00:01:22 v #950 > > ]]
00:01:22 v #951 > >             )
00:01:22 v #952 > >
00:01:22 v #953 > >     let deletedStream =
00:01:22 v #954 > >         AsyncSeq.subscribeEvent
00:01:22 v #955 > >             watcher.Deleted
00:01:22 v #956 > >             (fun event ->
00:01:22 v #957 > >                 ticks (),
00:01:22 v #958 > >                 [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]]
00:01:22 v #959 > >             )
00:01:22 v #960 > >
00:01:22 v #961 > >     let createdStream =
00:01:22 v #962 > >         AsyncSeq.subscribeEvent
00:01:22 v #963 > >             watcher.Created
00:01:22 v #964 > >             (fun event ->
00:01:22 v #965 > >                 let path = getEventPath event.FullPath
00:01:22 v #966 > >                 ticks (), [[
00:01:22 v #967 > >                     FileSystemChange.Created (path, None)
00:01:22 v #968 > >                     if SpiralPlatform.is_windows () then
00:01:22 v #969 > >                         FileSystemChange.Changed (path, None)
00:01:22 v #970 > >                 ]])
00:01:22 v #971 > >
00:01:22 v #972 > >     let renamedStream =
00:01:22 v #973 > >         AsyncSeq.subscribeEvent
00:01:22 v #974 > >             watcher.Renamed
00:01:22 v #975 > >             (fun event ->
00:01:22 v #976 > >                 ticks (), [[
00:01:22 v #977 > >                     FileSystemChange.Renamed (
00:01:22 v #978 > >                         getEventPath event.OldFullPath,
00:01:22 v #979 > >                         (getEventPath event.FullPath, None)
00:01:22 v #980 > >                     )
00:01:22 v #981 > >                 ]]
00:01:22 v #982 > >             )
00:01:22 v #983 > >
00:01:22 v #984 > >     let failureStream =
00:01:22 v #985 > >         AsyncSeq.subscribeEvent
00:01:22 v #986 > >             watcher.Error
00:01:22 v #987 > >             (fun event -> ticks (), [[ FileSystemChange.Failure
00:01:22 v #988 > > (event.GetException ()) ]])
00:01:22 v #989 > >
00:01:22 v #990 > >     let stream =
00:01:22 v #991 > >         [[
00:01:22 v #992 > >             changedStream
00:01:22 v #993 > >             deletedStream
00:01:22 v #994 > >             createdStream
00:01:22 v #995 > >             renamedStream
00:01:22 v #996 > >             failureStream
00:01:22 v #997 > >         ]]
00:01:22 v #998 > >         |> FSharp.Control.AsyncSeq.mergeAll
00:01:22 v #999 > >         |> FSharp.Control.AsyncSeq.map (fun (t, events) ->
00:01:22 v #1000 > >             events
00:01:22 v #1001 > >             |> List.fold
00:01:22 v #1002 > >                 (fun (i, events) event ->
00:01:22 v #1003 > >                     i + 1L,
00:01:22 v #1004 > >                     (t + i, event) :: events)
00:01:22 v #1005 > >                 (0L, [[]])
00:01:22 v #1006 > >             |> snd
00:01:22 v #1007 > >             |> List.rev
00:01:22 v #1008 > >         )
00:01:22 v #1009 > >         |> FSharp.Control.AsyncSeq.concatSeq
00:01:22 v #1010 > >         |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async {
00:01:22 v #1011 > >             match shouldReadContent event, event with
00:01:22 v #1012 > >             | true, FileSystemChange.Changed (path, _) ->
00:01:22 v #1013 > >                 do! Async.Sleep 5
00:01:22 v #1014 > >                 let! content = fullPath </> path |>
00:01:22 v #1015 > > SpiralFileSystem.read_all_text_retry_async
00:01:22 v #1016 > >                 return t, FileSystemChange.Changed (path, content)
00:01:22 v #1017 > >             | true, FileSystemChange.Created (path, _) ->
00:01:22 v #1018 > >                 do! Async.Sleep 5
00:01:22 v #1019 > >                 let! content = fullPath </> path |>
00:01:22 v #1020 > > SpiralFileSystem.read_all_text_retry_async
00:01:22 v #1021 > >                 return t, FileSystemChange.Created (path, content)
00:01:22 v #1022 > >             | true, FileSystemChange.Renamed (oldPath, (newPath, _)) ->
00:01:22 v #1023 > >                 let! content = fullPath </> newPath |>
00:01:22 v #1024 > > SpiralFileSystem.read_all_text_retry_async
00:01:22 v #1025 > >                 return t, FileSystemChange.Renamed (oldPath, (newPath, content))
00:01:22 v #1026 > >             | _ -> return t, event
00:01:22 v #1027 > >         })
00:01:22 v #1028 > >
00:01:22 v #1029 > >     let disposable =
00:01:22 v #1030 > >         new_disposable (fun () ->
00:01:22 v #1031 > >             trace Debug (fun () -> "FileSystem.watchWithFilter / Disposing watch
00:01:22 v #1032 > > stream") _locals
00:01:22 v #1033 > >             watcher.EnableRaisingEvents <- false
00:01:22 v #1034 > >             watcher.Dispose ()
00:01:22 v #1035 > >         )
00:01:22 v #1036 > >
00:01:22 v #1037 > >     stream, disposable
00:01:22 v #1038 > >
00:01:22 v #1039 > > let inline watchDirectory path =
00:01:22 v #1040 > >     watchDirectoryWithFilter
00:01:22 v #1041 > >         (System.IO.NotifyFilters.FileName
00:01:22 v #1042 > >         // ||| System.IO.NotifyFilters.DirectoryName
00:01:22 v #1043 > >         // ||| System.IO.NotifyFilters.Attributes
00:01:22 v #1044 > >         //// ||| System.IO.NotifyFilters.Size
00:01:22 v #1045 > >         ||| System.IO.NotifyFilters.LastWrite
00:01:22 v #1046 > >         //// ||| System.IO.NotifyFilters.LastAccess
00:01:22 v #1047 > >         // ||| System.IO.NotifyFilters.CreationTime
00:01:22 v #1048 > >         // ||| System.IO.NotifyFilters.Security
00:01:22 v #1049 > >         )
00:01:22 v #1050 > >         path
00:01:23 v #1051 > >
00:01:23 v #1052 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:23 v #1053 > > │ ### testEventsRaw (test)
00:01:23 v #1054 > >
00:01:23 v #1055 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:23 v #1056 > > //// test
00:01:23 v #1057 > >
00:01:23 v #1058 > > let inline testEventsRaw
00:01:23 v #1059 > >     (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq<int64 *
00:01:23 v #1060 > > FileSystemChange> * IDisposable)
00:01:23 v #1061 > >     write
00:01:23 v #1062 > >     =
00:01:23 v #1063 > >     let struct (tempDir, tempDisposable) =
00:01:23 v #1064 > >         "FileSystem.testEventsRaw"
00:01:23 v #1065 > >         |> SpiralCrypto.hash_text
00:01:23 v #1066 > >         |> SpiralFileSystem.create_temp_dir'
00:01:23 v #1067 > >     let stream, disposable = watchFn (fun _ -> true) tempDir
00:01:23 v #1068 > >
00:01:23 v #1069 > >     let events = System.Collections.Concurrent.ConcurrentBag ()
00:01:23 v #1070 > >
00:01:23 v #1071 > >     let inline iter () =
00:01:23 v #1072 > >         stream
00:01:23 v #1073 > >         |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {
00:01:23 v #1074 > > events.Add event })
00:01:23 v #1075 > >
00:01:23 v #1076 > >     let run = async {
00:01:23 v #1077 > >         let! _ = iter () |> Async.StartChild
00:01:23 v #1078 > >         do! Async.Sleep 250
00:01:23 v #1079 > >         return! write tempDir
00:01:23 v #1080 > >     }
00:01:23 v #1081 > >
00:01:23 v #1082 > >     try
00:01:23 v #1083 > >         run
00:01:23 v #1084 > >         |> Async.runWithTimeout 60000
00:01:23 v #1085 > >         |> _assertEqual (Some ())
00:01:23 v #1086 > >     finally
00:01:23 v #1087 > >         disposable.Dispose ()
00:01:23 v #1088 > >         tempDisposable.Dispose ()
00:01:23 v #1089 > >
00:01:23 v #1090 > >     let eventsLog =
00:01:23 v #1091 > >         events
00:01:23 v #1092 > >         |> Seq.toList
00:01:23 v #1093 > >         |> List.sortBy fst
00:01:23 v #1094 > >         |> List.fold
00:01:23 v #1095 > >             (fun (prev, acc) (ticks, event) ->
00:01:23 v #1096 > >                 ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event)
00:01:23 v #1097 > > :: acc
00:01:23 v #1098 > >             )
00:01:23 v #1099 > >             (0L, [[]])
00:01:23 v #1100 > >         |> snd
00:01:23 v #1101 > >         |> List.rev
00:01:23 v #1102 > >         |> List.map (fun (diff, n, event) -> $"{n} / {diff} / {event}" |>
00:01:23 v #1103 > > SpiralSm.ellipsis_end 100L)
00:01:23 v #1104 > >         |> SpiralSm.concat "\n"
00:01:23 v #1105 > >     let _locals () = $"eventsLog: \n{eventsLog} / {_locals ()}"
00:01:23 v #1106 > >     trace Debug (fun () -> "FileSystem.testEventsRaw") _locals
00:01:23 v #1107 > >
00:01:23 v #1108 > >     events
00:01:23 v #1109 > >     |> Seq.toList
00:01:23 v #1110 > >     |> List.sortBy fst
00:01:23 v #1111 > >     |> List.map snd
00:01:23 v #1112 > >     |> List.fold
00:01:23 v #1113 > >         (fun acc event ->
00:01:23 v #1114 > >             match acc, event with
00:01:23 v #1115 > >             | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent
00:01:23 v #1116 > > :: acc,
00:01:23 v #1117 > >                 FileSystemChange.Changed (path, Some content)
00:01:23 v #1118 > >                 when lastPath = path && content |> SpiralSm.starts_with
00:01:23 v #1119 > > lastContent
00:01:23 v #1120 > >                 ->
00:01:23 v #1121 > >                 event :: acc
00:01:23 v #1122 > >             | _ -> event :: acc
00:01:23 v #1123 > >         )
00:01:23 v #1124 > >         [[]]
00:01:23 v #1125 > >     |> List.rev
00:01:23 v #1126 > >
00:01:23 v #1127 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:23 v #1128 > > │ #### fast (test)
00:01:23 v #1129 > >
00:01:23 v #1130 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:23 v #1131 > > //// test
00:01:23 v #1132 > >
00:01:23 v #1133 > > let inline write path = async {
00:01:23 v #1134 > >     let n = 2
00:01:23 v #1135 > >
00:01:23 v #1136 > >     for i = 1 to n do
00:01:23 v #1137 > >         do! $"a{i}" |> SpiralFileSystem.write_all_text_async (path </>
00:01:23 v #1138 > > $"file{i}.txt")
00:01:23 v #1139 > >
00:01:23 v #1140 > >     do! Async.Sleep 250
00:01:23 v #1141 > >
00:01:23 v #1142 > >     for i = 1 to n do
00:01:23 v #1143 > >         do! $"b{i}" |> SpiralFileSystem.write_all_text_async (path </>
00:01:23 v #1144 > > $"file{i}.txt")
00:01:23 v #1145 > >
00:01:23 v #1146 > >     do! Async.Sleep 250
00:01:23 v #1147 > >
00:01:23 v #1148 > >     for i = 1 to n do
00:01:23 v #1149 > >         do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path
00:01:23 v #1150 > > </> $"file_{i}.txt") |> Async.Ignore
00:01:23 v #1151 > >
00:01:23 v #1152 > >     do! Async.Sleep 250
00:01:23 v #1153 > >
00:01:23 v #1154 > >     for i = 1 to n do
00:01:23 v #1155 > >         do! $"c{i}" |> SpiralFileSystem.write_all_text_async (path </>
00:01:23 v #1156 > > $"file_{i}.txt")
00:01:23 v #1157 > >
00:01:23 v #1158 > >     do! Async.Sleep 250
00:01:23 v #1159 > >
00:01:23 v #1160 > >     for i = 1 to n do
00:01:23 v #1161 > >         do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |>
00:01:23 v #1162 > > Async.Ignore
00:01:23 v #1163 > >
00:01:23 v #1164 > >     do! Async.Sleep 250
00:01:23 v #1165 > > }
00:01:23 v #1166 > >
00:01:23 v #1167 > > let inline run () =
00:01:23 v #1168 > >     let events = testEventsRaw watchDirectory write
00:01:23 v #1169 > >
00:01:23 v #1170 > >     events
00:01:23 v #1171 > >     |> _sequenceEqual [[
00:01:23 v #1172 > >         FileSystemChange.Created ("file1.txt", Some "a1")
00:01:23 v #1173 > >         FileSystemChange.Changed ("file1.txt", Some "a1")
00:01:23 v #1174 > >         FileSystemChange.Created ("file2.txt", Some "a2")
00:01:23 v #1175 > >         FileSystemChange.Changed ("file2.txt", Some "a2")
00:01:23 v #1176 > >
00:01:23 v #1177 > >         FileSystemChange.Changed ("file1.txt", Some "b1")
00:01:23 v #1178 > >         FileSystemChange.Changed ("file2.txt", Some "b2")
00:01:23 v #1179 > >
00:01:23 v #1180 > >         FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "b1"))
00:01:23 v #1181 > >         FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "b2"))
00:01:23 v #1182 > >
00:01:23 v #1183 > >         FileSystemChange.Changed ("file_1.txt", Some "c1")
00:01:23 v #1184 > >         FileSystemChange.Changed ("file_2.txt", Some "c2")
00:01:23 v #1185 > >
00:01:23 v #1186 > >         FileSystemChange.Deleted "file_1.txt"
00:01:23 v #1187 > >         FileSystemChange.Deleted "file_2.txt"
00:01:23 v #1188 > >     ]]
00:01:23 v #1189 > >
00:01:23 v #1190 > > run
00:01:23 v #1191 > > |> retry_fn 3
00:01:23 v #1192 > > |> _assertEqual (Some ())
00:01:26 v #1193 > >
00:01:26 v #1194 > > ── [ 2.61s - stdout ] ──────────────────────────────────────────────────────────
00:01:26 v #1195 > > │ Some ()
00:01:26 v #1196 > > │
00:01:26 v #1197 > > │ 00:00:04 d #1 FileSystem.watchWithFilter / Disposing
00:01:26 v #1198 > > watch stream / filter: FileName, LastWrite
00:01:26 v #1199 > > │ 00:00:04 d #2 FileSystem.testEventsRaw / eventsLog:
00:01:26 v #1200 > > │ 0 / 638735800625377974 / Created ("file1.txt", Some "a1")
00:01:26 v #1201 > > │ 13260 / 638735800625391234 / Changed ("file1.txt", Some "a1")
00:01:26 v #1202 > > │ 2198 / 638735800625393432 / Created ("file2.txt", Some "a2")
00:01:26 v #1203 > > │ 46 / 638735800625393478 / Changed ("file2.txt", Some "a2")
00:01:26 v #1204 > > │ 2488600 / 638735800627882078 / Changed ("file1.txt", Some
00:01:26 v #1205 > > "b1")
00:01:26 v #1206 > > │ 355 / 638735800627882433 / Changed ("file1.txt", Some "b1")
00:01:26 v #1207 > > │ 5041 / 638735800627887474 / Changed ("file2.txt", Some "b2")
00:01:26 v #1208 > > │ 873 / 638735800627888347 / Changed ("file2.txt", Some "b2")
00:01:26 v #1209 > > │ 2549269 / 638735800630437616 / Renamed ("file1.txt",
00:01:26 v #1210 > > ("file_1.txt", Some "b1"))
00:01:26 v #1211 > > │ 7444 / 638735800630445060 / Renamed ("file2.txt",
00:01:26 v #1212 > > ("file_2.txt", Some "b2"))
00:01:26 v #1213 > > │ 2520124 / 638735800632965184 / Changed ("file_1.txt", Some
00:01:26 v #1214 > > "c1")
00:01:26 v #1215 > > │ 429 / 638735800632965613 / Changed ("file_1.txt", Some "c1")
00:01:26 v #1216 > > │ 4955 / 638735800632970568 / Changed ("file_2.txt", Some "c2")
00:01:26 v #1217 > > │ 2540848 / 638735800635511416 / Deleted "file_1.txt"
00:01:26 v #1218 > > │ 1425 / 638735800635512841 / Deleted "file_2.txt"
00:01:26 v #1219 > > │ [Created ("file1.txt", Some "a1"); Changed ("file1.txt", Some
00:01:26 v #1220 > > "a1"); Created ("file2.txt", Some "a2");
00:01:26 v #1221 > > │  Changed ("file2.txt", Some "a2"); Changed ("file1.txt", Some
00:01:26 v #1222 > > "b1"); Changed ("file2.txt", Some "b2");
00:01:26 v #1223 > > │  Renamed ("file1.txt", ("file_1.txt", Some "b1")); Renamed
00:01:26 v #1224 > > ("file2.txt", ("file_2.txt", Some "b2"));
00:01:26 v #1225 > > │  Changed ("file_1.txt", Some "c1"); Changed ("file_2.txt",
00:01:26 v #1226 > > Some "c2"); Deleted "file_1.txt"; Deleted "file_2.txt"]
00:01:26 v #1227 > > │
00:01:26 v #1228 > > │ Some ()
00:01:26 v #1229 > > │
00:01:26 v #1230 > > │
00:01:26 v #1231 > >
00:01:26 v #1232 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 v #1233 > > │ #### slow (test)
00:01:26 v #1234 > >
00:01:26 v #1235 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:26 v #1236 > > //// test
00:01:26 v #1237 > >
00:01:26 v #1238 > > let inline write path = async {
00:01:26 v #1239 > >     let n = 2
00:01:26 v #1240 > >
00:01:26 v #1241 > >     let contents =
00:01:26 v #1242 > >         [[ 1 .. n ]]
00:01:26 v #1243 > >         |> List.map (string >> String.replicate 1_000_000)
00:01:26 v #1244 > >
00:01:26 v #1245 > >     for i = 1 to n do
00:01:26 v #1246 > >         do! $"{contents.[[i - 1]]}a" |> SpiralFileSystem.write_all_text_async
00:01:26 v #1247 > > (path </> $"file{i}.txt")
00:01:26 v #1248 > >
00:01:26 v #1249 > >     do! Async.Sleep 1500
00:01:26 v #1250 > >
00:01:26 v #1251 > >     for i = 1 to n do
00:01:26 v #1252 > >         do! $"{contents.[[i - 1]]}b" |> SpiralFileSystem.write_all_text_async
00:01:26 v #1253 > > (path </> $"file{i}.txt")
00:01:26 v #1254 > >
00:01:26 v #1255 > >     do! Async.Sleep 1500
00:01:26 v #1256 > >
00:01:26 v #1257 > >     for i = 1 to n do
00:01:26 v #1258 > >         do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path
00:01:26 v #1259 > > </> $"file_{i}.txt") |> Async.Ignore
00:01:26 v #1260 > >
00:01:26 v #1261 > >     do! Async.Sleep 1500
00:01:26 v #1262 > >
00:01:26 v #1263 > >     for i = 1 to n do
00:01:26 v #1264 > >         do! $"{contents.[[i - 1]]}c" |> SpiralFileSystem.write_all_text_async
00:01:26 v #1265 > > (path </> $"file_{i}.txt")
00:01:26 v #1266 > >
00:01:26 v #1267 > >     do! Async.Sleep 1500
00:01:26 v #1268 > >
00:01:26 v #1269 > >     for i = 1 to n do
00:01:26 v #1270 > >         do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |>
00:01:26 v #1271 > > Async.Ignore
00:01:26 v #1272 > >
00:01:26 v #1273 > >     do! Async.Sleep 1500
00:01:26 v #1274 > > }
00:01:26 v #1275 > >
00:01:26 v #1276 > > let inline run () =
00:01:26 v #1277 > >     let events =
00:01:26 v #1278 > >         testEventsRaw watchDirectory write
00:01:26 v #1279 > >         |> List.map (function
00:01:26 v #1280 > >             | FileSystemChange.Changed (path, Some content) ->
00:01:26 v #1281 > >                 FileSystemChange.Changed (path, content |> Seq.distinct |>
00:01:26 v #1282 > > Seq.map string |> SpiralSm.concat "" |> Some)
00:01:26 v #1283 > >             | FileSystemChange.Created (path, Some content) ->
00:01:26 v #1284 > >                 FileSystemChange.Created (path, content |> Seq.distinct |>
00:01:26 v #1285 > > Seq.map string |> SpiralSm.concat "" |> Some)
00:01:26 v #1286 > >             | FileSystemChange.Renamed (oldPath, (newPath, Some content)) ->
00:01:26 v #1287 > >                 FileSystemChange.Renamed (
00:01:26 v #1288 > >                     oldPath,
00:01:26 v #1289 > >                     (newPath, content |> Seq.distinct |> Seq.map string |>
00:01:26 v #1290 > > SpiralSm.concat "" |> Some)
00:01:26 v #1291 > >                 )
00:01:26 v #1292 > >             | event -> event
00:01:26 v #1293 > >         )
00:01:26 v #1294 > >
00:01:26 v #1295 > >     events
00:01:26 v #1296 > >     |> _sequenceEqual [[
00:01:26 v #1297 > >         FileSystemChange.Created ("file1.txt", Some "1a")
00:01:26 v #1298 > >         FileSystemChange.Changed ("file1.txt", Some "1a")
00:01:26 v #1299 > >         FileSystemChange.Created ("file2.txt", Some "2a")
00:01:26 v #1300 > >         FileSystemChange.Changed ("file2.txt", Some "2a")
00:01:26 v #1301 > >
00:01:26 v #1302 > >         FileSystemChange.Changed ("file1.txt", Some "1b")
00:01:26 v #1303 > >         FileSystemChange.Changed ("file2.txt", Some "2b")
00:01:26 v #1304 > >
00:01:26 v #1305 > >         FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "1b"))
00:01:26 v #1306 > >         FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "2b"))
00:01:26 v #1307 > >
00:01:26 v #1308 > >         FileSystemChange.Changed ("file_1.txt", Some "1c")
00:01:26 v #1309 > >         FileSystemChange.Changed ("file_2.txt", Some "2c")
00:01:26 v #1310 > >
00:01:26 v #1311 > >         FileSystemChange.Deleted "file_1.txt"
00:01:26 v #1312 > >         FileSystemChange.Deleted "file_2.txt"
00:01:26 v #1313 > >     ]]
00:01:26 v #1314 > >
00:01:26 v #1315 > > run
00:01:26 v #1316 > > |> retry_fn 5
00:01:26 v #1317 > > |> _assertEqual (Some ())
00:01:37 v #1318 > >
00:01:37 v #1319 > > ── [ 11.18s - stdout ] ─────────────────────────────────────────────────────────
00:01:37 v #1320 > > │ Some ()
00:01:37 v #1321 > > │
00:01:37 v #1322 > > │ 00:00:13 d #3 FileSystem.watchWithFilter / Disposing
00:01:37 v #1323 > > watch stream / filter: FileName, LastWrite
00:01:37 v #1324 > > │ 00:00:15 d #4 FileSystem.testEventsRaw / eventsLog:
00:01:37 v #1325 > > │ 0 / 638735800650889587 / Created
00:01:37 v #1326 > > │   ("file1.txt",
00:01:37 v #1327 > > │  ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1328 > > │ 3798 / 638735800650893385 / Changed
00:01:37 v #1329 > > │
00:01:37 v #1330 > > ("file1.txt"...11111111111111111111111111111111111111111111111a")
00:01:37 v #1331 > > │ 329 / 638735800650893714 / Changed
00:01:37 v #1332 > > │
00:01:37 v #1333 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1334 > > │ 64 / 638735800650893778 / Changed
00:01:37 v #1335 > > │   ("file1.txt",
00:01:37 v #1336 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1337 > > │ 271 / 638735800650894049 / Changed
00:01:37 v #1338 > > │
00:01:37 v #1339 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1340 > > │ 80 / 638735800650894129 / Changed
00:01:37 v #1341 > > │   ("file1.txt",
00:01:37 v #1342 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1343 > > │ 258 / 638735800650894387 / Changed
00:01:37 v #1344 > > │
00:01:37 v #1345 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1346 > > │ 99 / 638735800650894486 / Changed
00:01:37 v #1347 > > │   ("file1.txt",
00:01:37 v #1348 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1349 > > │ 218 / 638735800650894704 / Changed
00:01:37 v #1350 > > │
00:01:37 v #1351 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1352 > > │ 229 / 638735800650894933 / Changed
00:01:37 v #1353 > > │
00:01:37 v #1354 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1355 > > │ 61 / 638735800650894994 / Changed
00:01:37 v #1356 > > │   ("file1.txt",
00:01:37 v #1357 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1358 > > │ 224 / 638735800650895218 / Changed
00:01:37 v #1359 > > │
00:01:37 v #1360 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1361 > > │ 83 / 638735800650895301 / Changed
00:01:37 v #1362 > > │   ("file1.txt",
00:01:37 v #1363 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1364 > > │ 87 / 638735800650895388 / Changed
00:01:37 v #1365 > > │   ("file1.txt",
00:01:37 v #1366 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1367 > > │ 208 / 638735800650895596 / Changed
00:01:37 v #1368 > > │
00:01:37 v #1369 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1370 > > │ 79 / 638735800650895675 / Changed
00:01:37 v #1371 > > │   ("file1.txt",
00:01:37 v #1372 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1373 > > │ 182 / 638735800650895857 / Changed
00:01:37 v #1374 > > │
00:01:37 v #1375 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1376 > > │ 167 / 638735800650896024 / Changed
00:01:37 v #1377 > > │
00:01:37 v #1378 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1379 > > │ 142 / 638735800650896166 / Changed
00:01:37 v #1380 > > │
00:01:37 v #1381 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1382 > > │ 110 / 638735800650896276 / Changed
00:01:37 v #1383 > > │
00:01:37 v #1384 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1385 > > │ 60 / 638735800650896336 / Changed
00:01:37 v #1386 > > │   ("file1.txt",
00:01:37 v #1387 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1388 > > │ 164 / 638735800650896500 / Changed
00:01:37 v #1389 > > │
00:01:37 v #1390 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1391 > > │ 65 / 638735800650896565 / Changed
00:01:37 v #1392 > > │   ("file1.txt",
00:01:37 v #1393 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1394 > > │ 170 / 638735800650896735 / Changed
00:01:37 v #1395 > > │
00:01:37 v #1396 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1397 > > │ 48 / 638735800650896783 / Changed
00:01:37 v #1398 > > │   ("file1.txt",
00:01:37 v #1399 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1400 > > │ 230 / 638735800650897013 / Changed
00:01:37 v #1401 > > │
00:01:37 v #1402 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1403 > > │ 58 / 638735800650897071 / Changed
00:01:37 v #1404 > > │   ("file1.txt",
00:01:37 v #1405 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1406 > > │ 200 / 638735800650897271 / Changed
00:01:37 v #1407 > > │
00:01:37 v #1408 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1409 > > │ 53 / 638735800650897324 / Changed
00:01:37 v #1410 > > │   ("file1.txt",
00:01:37 v #1411 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1412 > > │ 172 / 638735800650897496 / Changed
00:01:37 v #1413 > > │
00:01:37 v #1414 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1415 > > │ 69 / 638735800650897565 / Changed
00:01:37 v #1416 > > │   ("file1.txt",
00:01:37 v #1417 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1418 > > │ 196 / 638735800650897761 / Changed
00:01:37 v #1419 > > │
00:01:37 v #1420 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1421 > > │ 52 / 638735800650897813 / Changed
00:01:37 v #1422 > > │   ("file1.txt",
00:01:37 v #1423 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1424 > > │ 208 / 638735800650898021 / Changed
00:01:37 v #1425 > > │
00:01:37 v #1426 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1427 > > │ 57 / 638735800650898078 / Changed
00:01:37 v #1428 > > │   ("file1.txt",
00:01:37 v #1429 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1430 > > │ 213 / 638735800650898291 / Changed
00:01:37 v #1431 > > │
00:01:37 v #1432 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1433 > > │ 56 / 638735800650898347 / Changed
00:01:37 v #1434 > > │   ("file1.txt",
00:01:37 v #1435 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1436 > > │ 191 / 638735800650898538 / Changed
00:01:37 v #1437 > > │
00:01:37 v #1438 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1439 > > │ 54 / 638735800650898592 / Changed
00:01:37 v #1440 > > │   ("file1.txt",
00:01:37 v #1441 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1442 > > │ 171 / 638735800650898763 / Changed
00:01:37 v #1443 > > │
00:01:37 v #1444 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1445 > > │ 143 / 638735800650898906 / Changed
00:01:37 v #1446 > > │
00:01:37 v #1447 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1448 > > │ 153 / 638735800650899059 / Changed
00:01:37 v #1449 > > │
00:01:37 v #1450 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1451 > > │ 196 / 638735800650899255 / Changed
00:01:37 v #1452 > > │
00:01:37 v #1453 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1454 > > │ 51 / 638735800650899306 / Changed
00:01:37 v #1455 > > │   ("file1.txt",
00:01:37 v #1456 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1457 > > │ 197 / 638735800650899503 / Changed
00:01:37 v #1458 > > │
00:01:37 v #1459 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1460 > > │ 64 / 638735800650899567 / Changed
00:01:37 v #1461 > > │   ("file1.txt",
00:01:37 v #1462 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1463 > > │ 164 / 638735800650899731 / Changed
00:01:37 v #1464 > > │
00:01:37 v #1465 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1466 > > │ 137 / 638735800650899868 / Changed
00:01:37 v #1467 > > │
00:01:37 v #1468 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1469 > > │ 166 / 638735800650900034 / Changed
00:01:37 v #1470 > > │
00:01:37 v #1471 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1472 > > │ 145 / 638735800650900179 / Changed
00:01:37 v #1473 > > │
00:01:37 v #1474 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1475 > > │ 167 / 638735800650900346 / Changed
00:01:37 v #1476 > > │
00:01:37 v #1477 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1478 > > │ 52 / 638735800650900398 / Changed
00:01:37 v #1479 > > │   ("file1.txt",
00:01:37 v #1480 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1481 > > │ 222 / 638735800650900620 / Changed
00:01:37 v #1482 > > │
00:01:37 v #1483 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1484 > > │ 671 / 638735800650901291 / Changed
00:01:37 v #1485 > > │
00:01:37 v #1486 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1487 > > │ 57 / 638735800650901348 / Changed
00:01:37 v #1488 > > │   ("file1.txt",
00:01:37 v #1489 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1490 > > │ 201 / 638735800650901549 / Changed
00:01:37 v #1491 > > │
00:01:37 v #1492 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1493 > > │ 54 / 638735800650901603 / Changed
00:01:37 v #1494 > > │   ("file1.txt",
00:01:37 v #1495 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1496 > > │ 230 / 638735800650901833 / Changed
00:01:37 v #1497 > > │
00:01:37 v #1498 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1499 > > │ 56 / 638735800650901889 / Changed
00:01:37 v #1500 > > │   ("file1.txt",
00:01:37 v #1501 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1502 > > │ 166 / 638735800650902055 / Changed
00:01:37 v #1503 > > │
00:01:37 v #1504 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1505 > > │ 69 / 638735800650902124 / Changed
00:01:37 v #1506 > > │   ("file1.txt",
00:01:37 v #1507 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1508 > > │ 166 / 638735800650902290 / Changed
00:01:37 v #1509 > > │
00:01:37 v #1510 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1511 > > │ 51 / 638735800650902341 / Changed
00:01:37 v #1512 > > │   ("file1.txt",
00:01:37 v #1513 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1514 > > │ 139 / 638735800650902480 / Changed
00:01:37 v #1515 > > │
00:01:37 v #1516 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1517 > > │ 160 / 638735800650902640 / Changed
00:01:37 v #1518 > > │
00:01:37 v #1519 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1520 > > │ 169 / 638735800650902809 / Changed
00:01:37 v #1521 > > │
00:01:37 v #1522 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1523 > > │ 144 / 638735800650902953 / Changed
00:01:37 v #1524 > > │
00:01:37 v #1525 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1526 > > │ 146 / 638735800650903099 / Changed
00:01:37 v #1527 > > │
00:01:37 v #1528 > > ("file1.txt",...11111111111111111111111111111111111111111111111a")
00:01:37 v #1529 > > │ 45 / 638735800650903144 / Changed
00:01:37 v #1530 > > │   ("file1.txt",
00:01:37 v #1531 > > │ ...11111111111111111111111111111111111111111111111a")
00:01:37 v #1532 > > │ 15551 / 638735800650918695 / Created
00:01:37 v #1533 > > │
00:01:37 v #1534 > > ("file2.txt...22222222222222222222222222222222222222222222222a")
00:01:37 v #1535 > > │ 139 / 638735800650918834 / Changed
00:01:37 v #1536 > > │
00:01:37 v #1537 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1538 > > │ 67 / 638735800650918901 / Changed
00:01:37 v #1539 > > │   ("file2.txt",
00:01:37 v #1540 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1541 > > │ 1118 / 638735800650920019 / Changed
00:01:37 v #1542 > > │
00:01:37 v #1543 > > ("file2.txt"...22222222222222222222222222222222222222222222222a")
00:01:37 v #1544 > > │ 82 / 638735800650920101 / Changed
00:01:37 v #1545 > > │   ("file2.txt",
00:01:37 v #1546 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1547 > > │ 61 / 638735800650920162 / Changed
00:01:37 v #1548 > > │   ("file2.txt",
00:01:37 v #1549 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1550 > > │ 199 / 638735800650920361 / Changed
00:01:37 v #1551 > > │
00:01:37 v #1552 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1553 > > │ 244 / 638735800650920605 / Changed
00:01:37 v #1554 > > │
00:01:37 v #1555 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1556 > > │ 222 / 638735800650920827 / Changed
00:01:37 v #1557 > > │
00:01:37 v #1558 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1559 > > │ 172 / 638735800650920999 / Changed
00:01:37 v #1560 > > │
00:01:37 v #1561 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1562 > > │ 155 / 638735800650921154 / Changed
00:01:37 v #1563 > > │
00:01:37 v #1564 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1565 > > │ 1484 / 638735800650922638 / Changed
00:01:37 v #1566 > > │
00:01:37 v #1567 > > ("file2.txt"...22222222222222222222222222222222222222222222222a")
00:01:37 v #1568 > > │ 86 / 638735800650922724 / Changed
00:01:37 v #1569 > > │   ("file2.txt",
00:01:37 v #1570 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1571 > > │ 191 / 638735800650922915 / Changed
00:01:37 v #1572 > > │
00:01:37 v #1573 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1574 > > │ 141 / 638735800650923056 / Changed
00:01:37 v #1575 > > │
00:01:37 v #1576 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1577 > > │ 128 / 638735800650923184 / Changed
00:01:37 v #1578 > > │
00:01:37 v #1579 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1580 > > │ 202 / 638735800650923386 / Changed
00:01:37 v #1581 > > │
00:01:37 v #1582 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1583 > > │ 32 / 638735800650923418 / Changed
00:01:37 v #1584 > > │   ("file2.txt",
00:01:37 v #1585 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1586 > > │ 121 / 638735800650923539 / Changed
00:01:37 v #1587 > > │
00:01:37 v #1588 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1589 > > │ 244 / 638735800650923783 / Changed
00:01:37 v #1590 > > │
00:01:37 v #1591 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1592 > > │ 134 / 638735800650923917 / Changed
00:01:37 v #1593 > > │
00:01:37 v #1594 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1595 > > │ 1081 / 638735800650924998 / Changed
00:01:37 v #1596 > > │
00:01:37 v #1597 > > ("file2.txt"...22222222222222222222222222222222222222222222222a")
00:01:37 v #1598 > > │ 95 / 638735800650925093 / Changed
00:01:37 v #1599 > > │   ("file2.txt",
00:01:37 v #1600 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1601 > > │ 180 / 638735800650925273 / Changed
00:01:37 v #1602 > > │
00:01:37 v #1603 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1604 > > │ 270 / 638735800650925543 / Changed
00:01:37 v #1605 > > │
00:01:37 v #1606 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1607 > > │ 241 / 638735800650925784 / Changed
00:01:37 v #1608 > > │
00:01:37 v #1609 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1610 > > │ 945 / 638735800650926729 / Changed
00:01:37 v #1611 > > │
00:01:37 v #1612 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1613 > > │ 77 / 638735800650926806 / Changed
00:01:37 v #1614 > > │   ("file2.txt",
00:01:37 v #1615 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1616 > > │ 280 / 638735800650927086 / Changed
00:01:37 v #1617 > > │
00:01:37 v #1618 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1619 > > │ 157 / 638735800650927243 / Changed
00:01:37 v #1620 > > │
00:01:37 v #1621 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1622 > > │ 151 / 638735800650927394 / Changed
00:01:37 v #1623 > > │
00:01:37 v #1624 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1625 > > │ 610 / 638735800650928004 / Changed
00:01:37 v #1626 > > │
00:01:37 v #1627 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1628 > > │ 61 / 638735800650928065 / Changed
00:01:37 v #1629 > > │   ("file2.txt",
00:01:37 v #1630 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1631 > > │ 196 / 638735800650928261 / Changed
00:01:37 v #1632 > > │
00:01:37 v #1633 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1634 > > │ 162 / 638735800650928423 / Changed
00:01:37 v #1635 > > │
00:01:37 v #1636 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1637 > > │ 156 / 638735800650928579 / Changed
00:01:37 v #1638 > > │
00:01:37 v #1639 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1640 > > │ 140 / 638735800650928719 / Changed
00:01:37 v #1641 > > │
00:01:37 v #1642 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1643 > > │ 523 / 638735800650929242 / Changed
00:01:37 v #1644 > > │
00:01:37 v #1645 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1646 > > │ 53 / 638735800650929295 / Changed
00:01:37 v #1647 > > │   ("file2.txt",
00:01:37 v #1648 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1649 > > │ 192 / 638735800650929487 / Changed
00:01:37 v #1650 > > │
00:01:37 v #1651 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1652 > > │ 165 / 638735800650929652 / Changed
00:01:37 v #1653 > > │
00:01:37 v #1654 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1655 > > │ 171 / 638735800650929823 / Changed
00:01:37 v #1656 > > │
00:01:37 v #1657 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1658 > > │ 542 / 638735800650930365 / Changed
00:01:37 v #1659 > > │
00:01:37 v #1660 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1661 > > │ 46 / 638735800650930411 / Changed
00:01:37 v #1662 > > │   ("file2.txt",
00:01:37 v #1663 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1664 > > │ 55 / 638735800650930466 / Changed
00:01:37 v #1665 > > │   ("file2.txt",
00:01:37 v #1666 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1667 > > │ 181 / 638735800650930647 / Changed
00:01:37 v #1668 > > │
00:01:37 v #1669 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1670 > > │ 48 / 638735800650930695 / Changed
00:01:37 v #1671 > > │   ("file2.txt",
00:01:37 v #1672 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1673 > > │ 172 / 638735800650930867 / Changed
00:01:37 v #1674 > > │
00:01:37 v #1675 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1676 > > │ 165 / 638735800650931032 / Changed
00:01:37 v #1677 > > │
00:01:37 v #1678 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1679 > > │ 131 / 638735800650931163 / Changed
00:01:37 v #1680 > > │
00:01:37 v #1681 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1682 > > │ 194 / 638735800650931357 / Changed
00:01:37 v #1683 > > │
00:01:37 v #1684 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1685 > > │ 56 / 638735800650931413 / Changed
00:01:37 v #1686 > > │   ("file2.txt",
00:01:37 v #1687 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1688 > > │ 45 / 638735800650931458 / Changed
00:01:37 v #1689 > > │   ("file2.txt",
00:01:37 v #1690 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1691 > > │ 316 / 638735800650931774 / Changed
00:01:37 v #1692 > > │
00:01:37 v #1693 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1694 > > │ 258 / 638735800650932032 / Changed
00:01:37 v #1695 > > │
00:01:37 v #1696 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1697 > > │ 33 / 638735800650932065 / Changed
00:01:37 v #1698 > > │   ("file2.txt",
00:01:37 v #1699 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1700 > > │ 202 / 638735800650932267 / Changed
00:01:37 v #1701 > > │
00:01:37 v #1702 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1703 > > │ 1256 / 638735800650933523 / Changed
00:01:37 v #1704 > > │
00:01:37 v #1705 > > ("file2.txt"...22222222222222222222222222222222222222222222222a")
00:01:37 v #1706 > > │ 80 / 638735800650933603 / Changed
00:01:37 v #1707 > > │   ("file2.txt",
00:01:37 v #1708 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1709 > > │ 285 / 638735800650933888 / Changed
00:01:37 v #1710 > > │
00:01:37 v #1711 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1712 > > │ 167 / 638735800650934055 / Changed
00:01:37 v #1713 > > │
00:01:37 v #1714 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1715 > > │ 48 / 638735800650934103 / Changed
00:01:37 v #1716 > > │   ("file2.txt",
00:01:37 v #1717 > > │ ...22222222222222222222222222222222222222222222222a")
00:01:37 v #1718 > > │ 184 / 638735800650934287 / Changed
00:01:37 v #1719 > > │
00:01:37 v #1720 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1721 > > │ 156 / 638735800650934443 / Changed
00:01:37 v #1722 > > │
00:01:37 v #1723 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1724 > > │ 287 / 638735800650934730 / Changed
00:01:37 v #1725 > > │
00:01:37 v #1726 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1727 > > │ 220 / 638735800650934950 / Changed
00:01:37 v #1728 > > │
00:01:37 v #1729 > > ("file2.txt",...22222222222222222222222222222222222222222222222a")
00:01:37 v #1730 > > │ 15026456 / 638735800665961406 / Changed
00:01:37 v #1731 > > │
00:01:37 v #1732 > > ("file1....11111111111111111111111111111111111111111111111b")
00:01:37 v #1733 > > │ 397 / 638735800665961803 / Changed
00:01:37 v #1734 > > │
00:01:37 v #1735 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1736 > > │ 49 / 638735800665961852 / Changed
00:01:37 v #1737 > > │   ("file1.txt",
00:01:37 v #1738 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1739 > > │ 500 / 638735800665962352 / Changed
00:01:37 v #1740 > > │
00:01:37 v #1741 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1742 > > │ 96 / 638735800665962448 / Changed
00:01:37 v #1743 > > │   ("file1.txt",
00:01:37 v #1744 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1745 > > │ 208 / 638735800665962656 / Changed
00:01:37 v #1746 > > │
00:01:37 v #1747 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1748 > > │ 47 / 638735800665962703 / Changed
00:01:37 v #1749 > > │   ("file1.txt",
00:01:37 v #1750 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1751 > > │ 203 / 638735800665962906 / Changed
00:01:37 v #1752 > > │
00:01:37 v #1753 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1754 > > │ 184 / 638735800665963090 / Changed
00:01:37 v #1755 > > │
00:01:37 v #1756 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1757 > > │ 146 / 638735800665963236 / Changed
00:01:37 v #1758 > > │
00:01:37 v #1759 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1760 > > │ 149 / 638735800665963385 / Changed
00:01:37 v #1761 > > │
00:01:37 v #1762 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1763 > > │ 133 / 638735800665963518 / Changed
00:01:37 v #1764 > > │
00:01:37 v #1765 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1766 > > │ 139 / 638735800665963657 / Changed
00:01:37 v #1767 > > │
00:01:37 v #1768 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1769 > > │ 229 / 638735800665963886 / Changed
00:01:37 v #1770 > > │
00:01:37 v #1771 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1772 > > │ 38 / 638735800665963924 / Changed
00:01:37 v #1773 > > │   ("file1.txt",
00:01:37 v #1774 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1775 > > │ 205 / 638735800665964129 / Changed
00:01:37 v #1776 > > │
00:01:37 v #1777 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1778 > > │ 62 / 638735800665964191 / Changed
00:01:37 v #1779 > > │   ("file1.txt",
00:01:37 v #1780 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1781 > > │ 102 / 638735800665964293 / Changed
00:01:37 v #1782 > > │
00:01:37 v #1783 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1784 > > │ 144 / 638735800665964437 / Changed
00:01:37 v #1785 > > │
00:01:37 v #1786 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1787 > > │ 41 / 638735800665964478 / Changed
00:01:37 v #1788 > > │   ("file1.txt",
00:01:37 v #1789 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1790 > > │ 515 / 638735800665964993 / Changed
00:01:37 v #1791 > > │
00:01:37 v #1792 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1793 > > │ 55 / 638735800665965048 / Changed
00:01:37 v #1794 > > │   ("file1.txt",
00:01:37 v #1795 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1796 > > │ 799 / 638735800665965847 / Changed
00:01:37 v #1797 > > │
00:01:37 v #1798 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1799 > > │ 81 / 638735800665965928 / Changed
00:01:37 v #1800 > > │   ("file1.txt",
00:01:37 v #1801 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1802 > > │ 42 / 638735800665965970 / Changed
00:01:37 v #1803 > > │   ("file1.txt",
00:01:37 v #1804 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1805 > > │ 207 / 638735800665966177 / Changed
00:01:37 v #1806 > > │
00:01:37 v #1807 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1808 > > │ 162 / 638735800665966339 / Changed
00:01:37 v #1809 > > │
00:01:37 v #1810 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1811 > > │ 178 / 638735800665966517 / Changed
00:01:37 v #1812 > > │
00:01:37 v #1813 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1814 > > │ 169 / 638735800665966686 / Changed
00:01:37 v #1815 > > │
00:01:37 v #1816 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1817 > > │ 232 / 638735800665966918 / Changed
00:01:37 v #1818 > > │
00:01:37 v #1819 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1820 > > │ 798 / 638735800665967716 / Changed
00:01:37 v #1821 > > │
00:01:37 v #1822 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1823 > > │ 1885 / 638735800665969601 / Changed
00:01:37 v #1824 > > │
00:01:37 v #1825 > > ("file1.txt"...11111111111111111111111111111111111111111111111b")
00:01:37 v #1826 > > │ 78 / 638735800665969679 / Changed
00:01:37 v #1827 > > │   ("file1.txt",
00:01:37 v #1828 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1829 > > │ 159 / 638735800665969838 / Changed
00:01:37 v #1830 > > │
00:01:37 v #1831 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1832 > > │ 147 / 638735800665969985 / Changed
00:01:37 v #1833 > > │
00:01:37 v #1834 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1835 > > │ 145 / 638735800665970130 / Changed
00:01:37 v #1836 > > │
00:01:37 v #1837 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1838 > > │ 745 / 638735800665970875 / Changed
00:01:37 v #1839 > > │
00:01:37 v #1840 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1841 > > │ 92 / 638735800665970967 / Changed
00:01:37 v #1842 > > │   ("file1.txt",
00:01:37 v #1843 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1844 > > │ 310 / 638735800665971277 / Changed
00:01:37 v #1845 > > │
00:01:37 v #1846 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1847 > > │ 1172 / 638735800665972449 / Changed
00:01:37 v #1848 > > │
00:01:37 v #1849 > > ("file1.txt"...11111111111111111111111111111111111111111111111b")
00:01:37 v #1850 > > │ 254 / 638735800665972703 / Changed
00:01:37 v #1851 > > │
00:01:37 v #1852 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1853 > > │ 224 / 638735800665972927 / Changed
00:01:37 v #1854 > > │
00:01:37 v #1855 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1856 > > │ 160 / 638735800665973087 / Changed
00:01:37 v #1857 > > │
00:01:37 v #1858 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1859 > > │ 160 / 638735800665973247 / Changed
00:01:37 v #1860 > > │
00:01:37 v #1861 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1862 > > │ 144 / 638735800665973391 / Changed
00:01:37 v #1863 > > │
00:01:37 v #1864 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1865 > > │ 162 / 638735800665973553 / Changed
00:01:37 v #1866 > > │
00:01:37 v #1867 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1868 > > │ 173 / 638735800665973726 / Changed
00:01:37 v #1869 > > │
00:01:37 v #1870 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1871 > > │ 170 / 638735800665973896 / Changed
00:01:37 v #1872 > > │
00:01:37 v #1873 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1874 > > │ 43 / 638735800665973939 / Changed
00:01:37 v #1875 > > │   ("file1.txt",
00:01:37 v #1876 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1877 > > │ 205 / 638735800665974144 / Changed
00:01:37 v #1878 > > │
00:01:37 v #1879 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1880 > > │ 23 / 638735800665974167 / Changed
00:01:37 v #1881 > > │   ("file1.txt",
00:01:37 v #1882 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1883 > > │ 184 / 638735800665974351 / Changed
00:01:37 v #1884 > > │
00:01:37 v #1885 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1886 > > │ 40 / 638735800665974391 / Changed
00:01:37 v #1887 > > │   ("file1.txt",
00:01:37 v #1888 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1889 > > │ 348 / 638735800665974739 / Changed
00:01:37 v #1890 > > │
00:01:37 v #1891 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1892 > > │ 169 / 638735800665974908 / Changed
00:01:37 v #1893 > > │
00:01:37 v #1894 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1895 > > │ 756 / 638735800665975664 / Changed
00:01:37 v #1896 > > │
00:01:37 v #1897 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1898 > > │ 73 / 638735800665975737 / Changed
00:01:37 v #1899 > > │   ("file1.txt",
00:01:37 v #1900 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1901 > > │ 25 / 638735800665975762 / Changed
00:01:37 v #1902 > > │   ("file1.txt",
00:01:37 v #1903 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1904 > > │ 194 / 638735800665975956 / Changed
00:01:37 v #1905 > > │
00:01:37 v #1906 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1907 > > │ 47 / 638735800665976003 / Changed
00:01:37 v #1908 > > │   ("file1.txt",
00:01:37 v #1909 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1910 > > │ 183 / 638735800665976186 / Changed
00:01:37 v #1911 > > │
00:01:37 v #1912 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1913 > > │ 167 / 638735800665976353 / Changed
00:01:37 v #1914 > > │
00:01:37 v #1915 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1916 > > │ 213 / 638735800665976566 / Changed
00:01:37 v #1917 > > │
00:01:37 v #1918 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1919 > > │ 157 / 638735800665976723 / Changed
00:01:37 v #1920 > > │
00:01:37 v #1921 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1922 > > │ 160 / 638735800665976883 / Changed
00:01:37 v #1923 > > │
00:01:37 v #1924 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1925 > > │ 142 / 638735800665977025 / Changed
00:01:37 v #1926 > > │
00:01:37 v #1927 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1928 > > │ 176 / 638735800665977201 / Changed
00:01:37 v #1929 > > │
00:01:37 v #1930 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1931 > > │ 203 / 638735800665977404 / Changed
00:01:37 v #1932 > > │
00:01:37 v #1933 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1934 > > │ 156 / 638735800665977560 / Changed
00:01:37 v #1935 > > │
00:01:37 v #1936 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1937 > > │ 174 / 638735800665977734 / Changed
00:01:37 v #1938 > > │
00:01:37 v #1939 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1940 > > │ 185 / 638735800665977919 / Changed
00:01:37 v #1941 > > │
00:01:37 v #1942 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1943 > > │ 258 / 638735800665978177 / Changed
00:01:37 v #1944 > > │
00:01:37 v #1945 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1946 > > │ 46 / 638735800665978223 / Changed
00:01:37 v #1947 > > │   ("file1.txt",
00:01:37 v #1948 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1949 > > │ 214 / 638735800665978437 / Changed
00:01:37 v #1950 > > │
00:01:37 v #1951 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1952 > > │ 188 / 638735800665978625 / Changed
00:01:37 v #1953 > > │
00:01:37 v #1954 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1955 > > │ 39 / 638735800665978664 / Changed
00:01:37 v #1956 > > │   ("file1.txt",
00:01:37 v #1957 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1958 > > │ 206 / 638735800665978870 / Changed
00:01:37 v #1959 > > │
00:01:37 v #1960 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1961 > > │ 50 / 638735800665978920 / Changed
00:01:37 v #1962 > > │   ("file1.txt",
00:01:37 v #1963 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1964 > > │ 245 / 638735800665979165 / Changed
00:01:37 v #1965 > > │
00:01:37 v #1966 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1967 > > │ 165 / 638735800665979330 / Changed
00:01:37 v #1968 > > │
00:01:37 v #1969 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1970 > > │ 38 / 638735800665979368 / Changed
00:01:37 v #1971 > > │   ("file1.txt",
00:01:37 v #1972 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1973 > > │ 212 / 638735800665979580 / Changed
00:01:37 v #1974 > > │
00:01:37 v #1975 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1976 > > │ 39 / 638735800665979619 / Changed
00:01:37 v #1977 > > │   ("file1.txt",
00:01:37 v #1978 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1979 > > │ 213 / 638735800665979832 / Changed
00:01:37 v #1980 > > │
00:01:37 v #1981 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1982 > > │ 45 / 638735800665979877 / Changed
00:01:37 v #1983 > > │   ("file1.txt",
00:01:37 v #1984 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #1985 > > │ 225 / 638735800665980102 / Changed
00:01:37 v #1986 > > │
00:01:37 v #1987 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1988 > > │ 162 / 638735800665980264 / Changed
00:01:37 v #1989 > > │
00:01:37 v #1990 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1991 > > │ 142 / 638735800665980406 / Changed
00:01:37 v #1992 > > │
00:01:37 v #1993 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1994 > > │ 163 / 638735800665980569 / Changed
00:01:37 v #1995 > > │
00:01:37 v #1996 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #1997 > > │ 43 / 638735800665980612 / Changed
00:01:37 v #1998 > > │   ("file1.txt",
00:01:37 v #1999 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #2000 > > │ 790 / 638735800665981402 / Changed
00:01:37 v #2001 > > │
00:01:37 v #2002 > > ("file1.txt",...11111111111111111111111111111111111111111111111b")
00:01:37 v #2003 > > │ 68 / 638735800665981470 / Changed
00:01:37 v #2004 > > │   ("file1.txt",
00:01:37 v #2005 > > │ ...11111111111111111111111111111111111111111111111b")
00:01:37 v #2006 > > │ 17810 / 638735800665999280 / Changed
00:01:37 v #2007 > > │
00:01:37 v #2008 > > ("file2.txt...22222222222222222222222222222222222222222222222b")
00:01:37 v #2009 > > │ 119 / 638735800665999399 / Changed
00:01:37 v #2010 > > │
00:01:37 v #2011 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2012 > > │ 342 / 638735800665999741 / Changed
00:01:37 v #2013 > > │
00:01:37 v #2014 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2015 > > │ 55 / 638735800665999796 / Changed
00:01:37 v #2016 > > │   ("file2.txt",
00:01:37 v #2017 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2018 > > │ 244 / 638735800666000040 / Changed
00:01:37 v #2019 > > │
00:01:37 v #2020 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2021 > > │ 54 / 638735800666000094 / Changed
00:01:37 v #2022 > > │   ("file2.txt",
00:01:37 v #2023 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2024 > > │ 37 / 638735800666000131 / Changed
00:01:37 v #2025 > > │   ("file2.txt",
00:01:37 v #2026 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2027 > > │ 286 / 638735800666000417 / Changed
00:01:37 v #2028 > > │
00:01:37 v #2029 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2030 > > │ 65 / 638735800666000482 / Changed
00:01:37 v #2031 > > │   ("file2.txt",
00:01:37 v #2032 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2033 > > │ 308 / 638735800666000790 / Changed
00:01:37 v #2034 > > │
00:01:37 v #2035 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2036 > > │ 62 / 638735800666000852 / Changed
00:01:37 v #2037 > > │   ("file2.txt",
00:01:37 v #2038 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2039 > > │ 161 / 638735800666001013 / Changed
00:01:37 v #2040 > > │
00:01:37 v #2041 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2042 > > │ 216 / 638735800666001229 / Changed
00:01:37 v #2043 > > │
00:01:37 v #2044 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2045 > > │ 48 / 638735800666001277 / Changed
00:01:37 v #2046 > > │   ("file2.txt",
00:01:37 v #2047 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2048 > > │ 101 / 638735800666001378 / Changed
00:01:37 v #2049 > > │
00:01:37 v #2050 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2051 > > │ 95 / 638735800666001473 / Changed
00:01:37 v #2052 > > │   ("file2.txt",
00:01:37 v #2053 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2054 > > │ 391 / 638735800666001864 / Changed
00:01:37 v #2055 > > │
00:01:37 v #2056 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2057 > > │ 234 / 638735800666002098 / Changed
00:01:37 v #2058 > > │
00:01:37 v #2059 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2060 > > │ 211 / 638735800666002309 / Changed
00:01:37 v #2061 > > │
00:01:37 v #2062 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2063 > > │ 345 / 638735800666002654 / Changed
00:01:37 v #2064 > > │
00:01:37 v #2065 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2066 > > │ 763 / 638735800666003417 / Changed
00:01:37 v #2067 > > │
00:01:37 v #2068 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2069 > > │ 57 / 638735800666003474 / Changed
00:01:37 v #2070 > > │   ("file2.txt",
00:01:37 v #2071 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2072 > > │ 37 / 638735800666003511 / Changed
00:01:37 v #2073 > > │   ("file2.txt",
00:01:37 v #2074 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2075 > > │ 779 / 638735800666004290 / Changed
00:01:37 v #2076 > > │
00:01:37 v #2077 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2078 > > │ 73 / 638735800666004363 / Changed
00:01:37 v #2079 > > │   ("file2.txt",
00:01:37 v #2080 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2081 > > │ 40 / 638735800666004403 / Changed
00:01:37 v #2082 > > │   ("file2.txt",
00:01:37 v #2083 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2084 > > │ 443 / 638735800666004846 / Changed
00:01:37 v #2085 > > │
00:01:37 v #2086 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2087 > > │ 57 / 638735800666004903 / Changed
00:01:37 v #2088 > > │   ("file2.txt",
00:01:37 v #2089 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2090 > > │ 212 / 638735800666005115 / Changed
00:01:37 v #2091 > > │
00:01:37 v #2092 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2093 > > │ 198 / 638735800666005313 / Changed
00:01:37 v #2094 > > │
00:01:37 v #2095 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2096 > > │ 154 / 638735800666005467 / Changed
00:01:37 v #2097 > > │
00:01:37 v #2098 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2099 > > │ 53 / 638735800666005520 / Changed
00:01:37 v #2100 > > │   ("file2.txt",
00:01:37 v #2101 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2102 > > │ 185 / 638735800666005705 / Changed
00:01:37 v #2103 > > │
00:01:37 v #2104 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2105 > > │ 142 / 638735800666005847 / Changed
00:01:37 v #2106 > > │
00:01:37 v #2107 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2108 > > │ 161 / 638735800666006008 / Changed
00:01:37 v #2109 > > │
00:01:37 v #2110 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2111 > > │ 171 / 638735800666006179 / Changed
00:01:37 v #2112 > > │
00:01:37 v #2113 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2114 > > │ 147 / 638735800666006326 / Changed
00:01:37 v #2115 > > │
00:01:37 v #2116 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2117 > > │ 130 / 638735800666006456 / Changed
00:01:37 v #2118 > > │
00:01:37 v #2119 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2120 > > │ 170 / 638735800666006626 / Changed
00:01:37 v #2121 > > │
00:01:37 v #2122 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2123 > > │ 44 / 638735800666006670 / Changed
00:01:37 v #2124 > > │   ("file2.txt",
00:01:37 v #2125 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2126 > > │ 198 / 638735800666006868 / Changed
00:01:37 v #2127 > > │
00:01:37 v #2128 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2129 > > │ 39 / 638735800666006907 / Changed
00:01:37 v #2130 > > │   ("file2.txt",
00:01:37 v #2131 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2132 > > │ 201 / 638735800666007108 / Changed
00:01:37 v #2133 > > │
00:01:37 v #2134 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2135 > > │ 197 / 638735800666007305 / Changed
00:01:37 v #2136 > > │
00:01:37 v #2137 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2138 > > │ 43 / 638735800666007348 / Changed
00:01:37 v #2139 > > │   ("file2.txt",
00:01:37 v #2140 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2141 > > │ 216 / 638735800666007564 / Changed
00:01:37 v #2142 > > │
00:01:37 v #2143 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2144 > > │ 206 / 638735800666007770 / Changed
00:01:37 v #2145 > > │
00:01:37 v #2146 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2147 > > │ 42 / 638735800666007812 / Changed
00:01:37 v #2148 > > │   ("file2.txt",
00:01:37 v #2149 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2150 > > │ 199 / 638735800666008011 / Changed
00:01:37 v #2151 > > │
00:01:37 v #2152 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2153 > > │ 210 / 638735800666008221 / Changed
00:01:37 v #2154 > > │
00:01:37 v #2155 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2156 > > │ 77 / 638735800666008298 / Changed
00:01:37 v #2157 > > │   ("file2.txt",
00:01:37 v #2158 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2159 > > │ 405 / 638735800666008703 / Changed
00:01:37 v #2160 > > │
00:01:37 v #2161 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2162 > > │ 48 / 638735800666008751 / Changed
00:01:37 v #2163 > > │   ("file2.txt",
00:01:37 v #2164 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2165 > > │ 178 / 638735800666008929 / Changed
00:01:37 v #2166 > > │
00:01:37 v #2167 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2168 > > │ 197 / 638735800666009126 / Changed
00:01:37 v #2169 > > │
00:01:37 v #2170 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2171 > > │ 44 / 638735800666009170 / Changed
00:01:37 v #2172 > > │   ("file2.txt",
00:01:37 v #2173 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2174 > > │ 190 / 638735800666009360 / Changed
00:01:37 v #2175 > > │
00:01:37 v #2176 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2177 > > │ 217 / 638735800666009577 / Changed
00:01:37 v #2178 > > │
00:01:37 v #2179 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2180 > > │ 44 / 638735800666009621 / Changed
00:01:37 v #2181 > > │   ("file2.txt",
00:01:37 v #2182 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2183 > > │ 201 / 638735800666009822 / Changed
00:01:37 v #2184 > > │
00:01:37 v #2185 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2186 > > │ 186 / 638735800666010008 / Changed
00:01:37 v #2187 > > │
00:01:37 v #2188 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2189 > > │ 47 / 638735800666010055 / Changed
00:01:37 v #2190 > > │   ("file2.txt",
00:01:37 v #2191 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2192 > > │ 225 / 638735800666010280 / Changed
00:01:37 v #2193 > > │
00:01:37 v #2194 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2195 > > │ 188 / 638735800666010468 / Changed
00:01:37 v #2196 > > │
00:01:37 v #2197 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2198 > > │ 43 / 638735800666010511 / Changed
00:01:37 v #2199 > > │   ("file2.txt",
00:01:37 v #2200 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2201 > > │ 218 / 638735800666010729 / Changed
00:01:37 v #2202 > > │
00:01:37 v #2203 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2204 > > │ 181 / 638735800666010910 / Changed
00:01:37 v #2205 > > │
00:01:37 v #2206 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2207 > > │ 41 / 638735800666010951 / Changed
00:01:37 v #2208 > > │   ("file2.txt",
00:01:37 v #2209 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2210 > > │ 199 / 638735800666011150 / Changed
00:01:37 v #2211 > > │
00:01:37 v #2212 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2213 > > │ 52 / 638735800666011202 / Changed
00:01:37 v #2214 > > │   ("file2.txt",
00:01:37 v #2215 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2216 > > │ 214 / 638735800666011416 / Changed
00:01:37 v #2217 > > │
00:01:37 v #2218 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2219 > > │ 1231 / 638735800666012647 / Changed
00:01:37 v #2220 > > │
00:01:37 v #2221 > > ("file2.txt"...22222222222222222222222222222222222222222222222b")
00:01:37 v #2222 > > │ 70 / 638735800666012717 / Changed
00:01:37 v #2223 > > │   ("file2.txt",
00:01:37 v #2224 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2225 > > │ 39 / 638735800666012756 / Changed
00:01:37 v #2226 > > │   ("file2.txt",
00:01:37 v #2227 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2228 > > │ 230 / 638735800666012986 / Changed
00:01:37 v #2229 > > │
00:01:37 v #2230 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2231 > > │ 161 / 638735800666013147 / Changed
00:01:37 v #2232 > > │
00:01:37 v #2233 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2234 > > │ 154 / 638735800666013301 / Changed
00:01:37 v #2235 > > │
00:01:37 v #2236 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2237 > > │ 53 / 638735800666013354 / Changed
00:01:37 v #2238 > > │   ("file2.txt",
00:01:37 v #2239 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2240 > > │ 175 / 638735800666013529 / Changed
00:01:37 v #2241 > > │
00:01:37 v #2242 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2243 > > │ 154 / 638735800666013683 / Changed
00:01:37 v #2244 > > │
00:01:37 v #2245 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2246 > > │ 169 / 638735800666013852 / Changed
00:01:37 v #2247 > > │
00:01:37 v #2248 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2249 > > │ 153 / 638735800666014005 / Changed
00:01:37 v #2250 > > │
00:01:37 v #2251 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2252 > > │ 153 / 638735800666014158 / Changed
00:01:37 v #2253 > > │
00:01:37 v #2254 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2255 > > │ 167 / 638735800666014325 / Changed
00:01:37 v #2256 > > │
00:01:37 v #2257 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2258 > > │ 160 / 638735800666014485 / Changed
00:01:37 v #2259 > > │
00:01:37 v #2260 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2261 > > │ 353 / 638735800666014838 / Changed
00:01:37 v #2262 > > │
00:01:37 v #2263 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2264 > > │ 194 / 638735800666015032 / Changed
00:01:37 v #2265 > > │
00:01:37 v #2266 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2267 > > │ 155 / 638735800666015187 / Changed
00:01:37 v #2268 > > │
00:01:37 v #2269 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2270 > > │ 148 / 638735800666015335 / Changed
00:01:37 v #2271 > > │
00:01:37 v #2272 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2273 > > │ 174 / 638735800666015509 / Changed
00:01:37 v #2274 > > │
00:01:37 v #2275 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2276 > > │ 227 / 638735800666015736 / Changed
00:01:37 v #2277 > > │
00:01:37 v #2278 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2279 > > │ 180 / 638735800666015916 / Changed
00:01:37 v #2280 > > │
00:01:37 v #2281 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2282 > > │ 169 / 638735800666016085 / Changed
00:01:37 v #2283 > > │
00:01:37 v #2284 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2285 > > │ 166 / 638735800666016251 / Changed
00:01:37 v #2286 > > │
00:01:37 v #2287 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2288 > > │ 152 / 638735800666016403 / Changed
00:01:37 v #2289 > > │
00:01:37 v #2290 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2291 > > │ 127 / 638735800666016530 / Changed
00:01:37 v #2292 > > │
00:01:37 v #2293 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2294 > > │ 194 / 638735800666016724 / Changed
00:01:37 v #2295 > > │
00:01:37 v #2296 > > ("file2.txt",...22222222222222222222222222222222222222222222222b")
00:01:37 v #2297 > > │ 44 / 638735800666016768 / Changed
00:01:37 v #2298 > > │   ("file2.txt",
00:01:37 v #2299 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2300 > > │ 40 / 638735800666016808 / Changed
00:01:37 v #2301 > > │   ("file2.txt",
00:01:37 v #2302 > > │ ...22222222222222222222222222222222222222222222222b")
00:01:37 v #2303 > > │ 15066978 / 638735800681083786 / Renamed
00:01:37 v #2304 > > │
00:01:37 v #2305 > > ("file1....1111111111111111111111111111111111111111111111b"))
00:01:37 v #2306 > > │ 434 / 638735800681084220 / Renamed
00:01:37 v #2307 > > │
00:01:37 v #2308 > > ("file2.txt",...2222222222222222222222222222222222222222222222b"))
00:01:37 v #2309 > > │ 15031433 / 638735800696115653 / Changed
00:01:37 v #2310 > > │
00:01:37 v #2311 > > ("file_1...11111111111111111111111111111111111111111111111c")
00:01:37 v #2312 > > │ 365 / 638735800696116018 / Changed
00:01:37 v #2313 > > │
00:01:37 v #2314 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2315 > > │ 670 / 638735800696116688 / Changed
00:01:37 v #2316 > > │
00:01:37 v #2317 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2318 > > │ 3179 / 638735800696119867 / Changed
00:01:37 v #2319 > > │
00:01:37 v #2320 > > ("file_1.txt...11111111111111111111111111111111111111111111111c")
00:01:37 v #2321 > > │ 434 / 638735800696120301 / Changed
00:01:37 v #2322 > > │
00:01:37 v #2323 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2324 > > │ 458 / 638735800696120759 / Changed
00:01:37 v #2325 > > │
00:01:37 v #2326 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2327 > > │ 480 / 638735800696121239 / Changed
00:01:37 v #2328 > > │
00:01:37 v #2329 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2330 > > │ 100 / 638735800696121339 / Changed
00:01:37 v #2331 > > │
00:01:37 v #2332 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2333 > > │ 54 / 638735800696121393 / Changed
00:01:37 v #2334 > > │
00:01:37 v #2335 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2336 > > │ 244 / 638735800696121637 / Changed
00:01:37 v #2337 > > │
00:01:37 v #2338 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2339 > > │ 153 / 638735800696121790 / Changed
00:01:37 v #2340 > > │
00:01:37 v #2341 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2342 > > │ 130 / 638735800696121920 / Changed
00:01:37 v #2343 > > │
00:01:37 v #2344 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2345 > > │ 44 / 638735800696121964 / Changed
00:01:37 v #2346 > > │
00:01:37 v #2347 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2348 > > │ 236 / 638735800696122200 / Changed
00:01:37 v #2349 > > │
00:01:37 v #2350 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2351 > > │ 360 / 638735800696122560 / Changed
00:01:37 v #2352 > > │
00:01:37 v #2353 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2354 > > │ 79 / 638735800696122639 / Changed
00:01:37 v #2355 > > │
00:01:37 v #2356 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2357 > > │ 44 / 638735800696122683 / Changed
00:01:37 v #2358 > > │
00:01:37 v #2359 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2360 > > │ 189 / 638735800696122872 / Changed
00:01:37 v #2361 > > │
00:01:37 v #2362 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2363 > > │ 53 / 638735800696122925 / Changed
00:01:37 v #2364 > > │
00:01:37 v #2365 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2366 > > │ 249 / 638735800696123174 / Changed
00:01:37 v #2367 > > │
00:01:37 v #2368 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2369 > > │ 57 / 638735800696123231 / Changed
00:01:37 v #2370 > > │
00:01:37 v #2371 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2372 > > │ 276 / 638735800696123507 / Changed
00:01:37 v #2373 > > │
00:01:37 v #2374 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2375 > > │ 57 / 638735800696123564 / Changed
00:01:37 v #2376 > > │
00:01:37 v #2377 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2378 > > │ 167 / 638735800696123731 / Changed
00:01:37 v #2379 > > │
00:01:37 v #2380 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2381 > > │ 152 / 638735800696123883 / Changed
00:01:37 v #2382 > > │
00:01:37 v #2383 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2384 > > │ 115 / 638735800696123998 / Changed
00:01:37 v #2385 > > │
00:01:37 v #2386 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2387 > > │ 265 / 638735800696124263 / Changed
00:01:37 v #2388 > > │
00:01:37 v #2389 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2390 > > │ 457 / 638735800696124720 / Changed
00:01:37 v #2391 > > │
00:01:37 v #2392 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2393 > > │ 175 / 638735800696124895 / Changed
00:01:37 v #2394 > > │
00:01:37 v #2395 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2396 > > │ 614 / 638735800696125509 / Changed
00:01:37 v #2397 > > │
00:01:37 v #2398 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2399 > > │ 84 / 638735800696125593 / Changed
00:01:37 v #2400 > > │
00:01:37 v #2401 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2402 > > │ 825 / 638735800696126418 / Changed
00:01:37 v #2403 > > │
00:01:37 v #2404 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2405 > > │ 72 / 638735800696126490 / Changed
00:01:37 v #2406 > > │
00:01:37 v #2407 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2408 > > │ 178 / 638735800696126668 / Changed
00:01:37 v #2409 > > │
00:01:37 v #2410 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2411 > > │ 305 / 638735800696126973 / Changed
00:01:37 v #2412 > > │
00:01:37 v #2413 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2414 > > │ 268 / 638735800696127241 / Changed
00:01:37 v #2415 > > │
00:01:37 v #2416 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2417 > > │ 700 / 638735800696127941 / Changed
00:01:37 v #2418 > > │
00:01:37 v #2419 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2420 > > │ 82 / 638735800696128023 / Changed
00:01:37 v #2421 > > │
00:01:37 v #2422 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2423 > > │ 226 / 638735800696128249 / Changed
00:01:37 v #2424 > > │
00:01:37 v #2425 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2426 > > │ 47 / 638735800696128296 / Changed
00:01:37 v #2427 > > │
00:01:37 v #2428 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2429 > > │ 204 / 638735800696128500 / Changed
00:01:37 v #2430 > > │
00:01:37 v #2431 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2432 > > │ 156 / 638735800696128656 / Changed
00:01:37 v #2433 > > │
00:01:37 v #2434 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2435 > > │ 51 / 638735800696128707 / Changed
00:01:37 v #2436 > > │
00:01:37 v #2437 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2438 > > │ 175 / 638735800696128882 / Changed
00:01:37 v #2439 > > │
00:01:37 v #2440 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2441 > > │ 174 / 638735800696129056 / Changed
00:01:37 v #2442 > > │
00:01:37 v #2443 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2444 > > │ 165 / 638735800696129221 / Changed
00:01:37 v #2445 > > │
00:01:37 v #2446 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2447 > > │ 583 / 638735800696129804 / Changed
00:01:37 v #2448 > > │
00:01:37 v #2449 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2450 > > │ 187 / 638735800696129991 / Changed
00:01:37 v #2451 > > │
00:01:37 v #2452 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2453 > > │ 168 / 638735800696130159 / Changed
00:01:37 v #2454 > > │
00:01:37 v #2455 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2456 > > │ 148 / 638735800696130307 / Changed
00:01:37 v #2457 > > │
00:01:37 v #2458 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2459 > > │ 143 / 638735800696130450 / Changed
00:01:37 v #2460 > > │
00:01:37 v #2461 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2462 > > │ 148 / 638735800696130598 / Changed
00:01:37 v #2463 > > │
00:01:37 v #2464 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2465 > > │ 56 / 638735800696130654 / Changed
00:01:37 v #2466 > > │
00:01:37 v #2467 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2468 > > │ 603 / 638735800696131257 / Changed
00:01:37 v #2469 > > │
00:01:37 v #2470 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2471 > > │ 57 / 638735800696131314 / Changed
00:01:37 v #2472 > > │
00:01:37 v #2473 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2474 > > │ 171 / 638735800696131485 / Changed
00:01:37 v #2475 > > │
00:01:37 v #2476 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2477 > > │ 155 / 638735800696131640 / Changed
00:01:37 v #2478 > > │
00:01:37 v #2479 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2480 > > │ 159 / 638735800696131799 / Changed
00:01:37 v #2481 > > │
00:01:37 v #2482 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2483 > > │ 50 / 638735800696131849 / Changed
00:01:37 v #2484 > > │
00:01:37 v #2485 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2486 > > │ 202 / 638735800696132051 / Changed
00:01:37 v #2487 > > │
00:01:37 v #2488 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2489 > > │ 58 / 638735800696132109 / Changed
00:01:37 v #2490 > > │
00:01:37 v #2491 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2492 > > │ 668 / 638735800696132777 / Changed
00:01:37 v #2493 > > │
00:01:37 v #2494 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2495 > > │ 59 / 638735800696132836 / Changed
00:01:37 v #2496 > > │
00:01:37 v #2497 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2498 > > │ 37 / 638735800696132873 / Changed
00:01:37 v #2499 > > │
00:01:37 v #2500 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2501 > > │ 208 / 638735800696133081 / Changed
00:01:37 v #2502 > > │
00:01:37 v #2503 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2504 > > │ 152 / 638735800696133233 / Changed
00:01:37 v #2505 > > │
00:01:37 v #2506 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2507 > > │ 154 / 638735800696133387 / Changed
00:01:37 v #2508 > > │
00:01:37 v #2509 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c")
00:01:37 v #2510 > > │ 56 / 638735800696133443 / Changed
00:01:37 v #2511 > > │
00:01:37 v #2512 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c")
00:01:37 v #2513 > > │ 16059 / 638735800696149502 / Changed
00:01:37 v #2514 > > │
00:01:37 v #2515 > > ("file_2.tx...22222222222222222222222222222222222222222222222c")
00:01:37 v #2516 > > │ 146 / 638735800696149648 / Changed
00:01:37 v #2517 > > │
00:01:37 v #2518 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2519 > > │ 408 / 638735800696150056 / Changed
00:01:37 v #2520 > > │
00:01:37 v #2521 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2522 > > │ 69 / 638735800696150125 / Changed
00:01:37 v #2523 > > │
00:01:37 v #2524 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2525 > > │ 208 / 638735800696150333 / Changed
00:01:37 v #2526 > > │
00:01:37 v #2527 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2528 > > │ 229 / 638735800696150562 / Changed
00:01:37 v #2529 > > │
00:01:37 v #2530 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2531 > > │ 27 / 638735800696150589 / Changed
00:01:37 v #2532 > > │
00:01:37 v #2533 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2534 > > │ 242 / 638735800696150831 / Changed
00:01:37 v #2535 > > │
00:01:37 v #2536 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2537 > > │ 51 / 638735800696150882 / Changed
00:01:37 v #2538 > > │
00:01:37 v #2539 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2540 > > │ 219 / 638735800696151101 / Changed
00:01:37 v #2541 > > │
00:01:37 v #2542 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2543 > > │ 39 / 638735800696151140 / Changed
00:01:37 v #2544 > > │
00:01:37 v #2545 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2546 > > │ 199 / 638735800696151339 / Changed
00:01:37 v #2547 > > │
00:01:37 v #2548 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2549 > > │ 272 / 638735800696151611 / Changed
00:01:37 v #2550 > > │
00:01:37 v #2551 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2552 > > │ 26 / 638735800696151637 / Changed
00:01:37 v #2553 > > │
00:01:37 v #2554 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2555 > > │ 140 / 638735800696151777 / Changed
00:01:37 v #2556 > > │
00:01:37 v #2557 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2558 > > │ 42 / 638735800696151819 / Changed
00:01:37 v #2559 > > │
00:01:37 v #2560 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2561 > > │ 204 / 638735800696152023 / Changed
00:01:37 v #2562 > > │
00:01:37 v #2563 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2564 > > │ 117 / 638735800696152140 / Changed
00:01:37 v #2565 > > │
00:01:37 v #2566 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2567 > > │ 39 / 638735800696152179 / Changed
00:01:37 v #2568 > > │
00:01:37 v #2569 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2570 > > │ 166 / 638735800696152345 / Changed
00:01:37 v #2571 > > │
00:01:37 v #2572 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2573 > > │ 38 / 638735800696152383 / Changed
00:01:37 v #2574 > > │
00:01:37 v #2575 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2576 > > │ 206 / 638735800696152589 / Changed
00:01:37 v #2577 > > │
00:01:37 v #2578 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2579 > > │ 127 / 638735800696152716 / Changed
00:01:37 v #2580 > > │
00:01:37 v #2581 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2582 > > │ 39 / 638735800696152755 / Changed
00:01:37 v #2583 > > │
00:01:37 v #2584 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2585 > > │ 168 / 638735800696152923 / Changed
00:01:37 v #2586 > > │
00:01:37 v #2587 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2588 > > │ 40 / 638735800696152963 / Changed
00:01:37 v #2589 > > │
00:01:37 v #2590 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2591 > > │ 170 / 638735800696153133 / Changed
00:01:37 v #2592 > > │
00:01:37 v #2593 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2594 > > │ 41 / 638735800696153174 / Changed
00:01:37 v #2595 > > │
00:01:37 v #2596 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2597 > > │ 121 / 638735800696153295 / Changed
00:01:37 v #2598 > > │
00:01:37 v #2599 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2600 > > │ 217 / 638735800696153512 / Changed
00:01:37 v #2601 > > │
00:01:37 v #2602 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2603 > > │ 171 / 638735800696153683 / Changed
00:01:37 v #2604 > > │
00:01:37 v #2605 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2606 > > │ 169 / 638735800696153852 / Changed
00:01:37 v #2607 > > │
00:01:37 v #2608 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2609 > > │ 39 / 638735800696153891 / Changed
00:01:37 v #2610 > > │
00:01:37 v #2611 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2612 > > │ 173 / 638735800696154064 / Changed
00:01:37 v #2613 > > │
00:01:37 v #2614 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2615 > > │ 24 / 638735800696154088 / Changed
00:01:37 v #2616 > > │
00:01:37 v #2617 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2618 > > │ 131 / 638735800696154219 / Changed
00:01:37 v #2619 > > │
00:01:37 v #2620 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2621 > > │ 115 / 638735800696154334 / Changed
00:01:37 v #2622 > > │
00:01:37 v #2623 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2624 > > │ 47 / 638735800696154381 / Changed
00:01:37 v #2625 > > │
00:01:37 v #2626 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2627 > > │ 297 / 638735800696154678 / Changed
00:01:37 v #2628 > > │
00:01:37 v #2629 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2630 > > │ 44 / 638735800696154722 / Changed
00:01:37 v #2631 > > │
00:01:37 v #2632 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2633 > > │ 242 / 638735800696154964 / Changed
00:01:37 v #2634 > > │
00:01:37 v #2635 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2636 > > │ 212 / 638735800696155176 / Changed
00:01:37 v #2637 > > │
00:01:37 v #2638 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2639 > > │ 123 / 638735800696155299 / Changed
00:01:37 v #2640 > > │
00:01:37 v #2641 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2642 > > │ 40 / 638735800696155339 / Changed
00:01:37 v #2643 > > │
00:01:37 v #2644 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2645 > > │ 175 / 638735800696155514 / Changed
00:01:37 v #2646 > > │
00:01:37 v #2647 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2648 > > │ 41 / 638735800696155555 / Changed
00:01:37 v #2649 > > │
00:01:37 v #2650 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2651 > > │ 209 / 638735800696155764 / Changed
00:01:37 v #2652 > > │
00:01:37 v #2653 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2654 > > │ 119 / 638735800696155883 / Changed
00:01:37 v #2655 > > │
00:01:37 v #2656 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2657 > > │ 364 / 638735800696156247 / Changed
00:01:37 v #2658 > > │
00:01:37 v #2659 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2660 > > │ 204 / 638735800696156451 / Changed
00:01:37 v #2661 > > │
00:01:37 v #2662 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2663 > > │ 126 / 638735800696156577 / Changed
00:01:37 v #2664 > > │
00:01:37 v #2665 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2666 > > │ 172 / 638735800696156749 / Changed
00:01:37 v #2667 > > │
00:01:37 v #2668 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2669 > > │ 53 / 638735800696156802 / Changed
00:01:37 v #2670 > > │
00:01:37 v #2671 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2672 > > │ 216 / 638735800696157018 / Changed
00:01:37 v #2673 > > │
00:01:37 v #2674 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2675 > > │ 218 / 638735800696157236 / Changed
00:01:37 v #2676 > > │
00:01:37 v #2677 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2678 > > │ 39 / 638735800696157275 / Changed
00:01:37 v #2679 > > │
00:01:37 v #2680 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2681 > > │ 281 / 638735800696157556 / Changed
00:01:37 v #2682 > > │
00:01:37 v #2683 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2684 > > │ 40 / 638735800696157596 / Changed
00:01:37 v #2685 > > │
00:01:37 v #2686 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2687 > > │ 153 / 638735800696157749 / Changed
00:01:37 v #2688 > > │
00:01:37 v #2689 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2690 > > │ 177 / 638735800696157926 / Changed
00:01:37 v #2691 > > │
00:01:37 v #2692 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2693 > > │ 47 / 638735800696157973 / Changed
00:01:37 v #2694 > > │
00:01:37 v #2695 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2696 > > │ 630 / 638735800696158603 / Changed
00:01:37 v #2697 > > │
00:01:37 v #2698 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2699 > > │ 56 / 638735800696158659 / Changed
00:01:37 v #2700 > > │
00:01:37 v #2701 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2702 > > │ 208 / 638735800696158867 / Changed
00:01:37 v #2703 > > │
00:01:37 v #2704 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2705 > > │ 244 / 638735800696159111 / Changed
00:01:37 v #2706 > > │
00:01:37 v #2707 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2708 > > │ 238 / 638735800696159349 / Changed
00:01:37 v #2709 > > │
00:01:37 v #2710 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2711 > > │ 172 / 638735800696159521 / Changed
00:01:37 v #2712 > > │
00:01:37 v #2713 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2714 > > │ 58 / 638735800696159579 / Changed
00:01:37 v #2715 > > │
00:01:37 v #2716 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2717 > > │ 174 / 638735800696159753 / Changed
00:01:37 v #2718 > > │
00:01:37 v #2719 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2720 > > │ 146 / 638735800696159899 / Changed
00:01:37 v #2721 > > │
00:01:37 v #2722 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2723 > > │ 148 / 638735800696160047 / Changed
00:01:37 v #2724 > > │
00:01:37 v #2725 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2726 > > │ 166 / 638735800696160213 / Changed
00:01:37 v #2727 > > │
00:01:37 v #2728 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2729 > > │ 127 / 638735800696160340 / Changed
00:01:37 v #2730 > > │
00:01:37 v #2731 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2732 > > │ 573 / 638735800696160913 / Changed
00:01:37 v #2733 > > │
00:01:37 v #2734 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2735 > > │ 74 / 638735800696160987 / Changed
00:01:37 v #2736 > > │
00:01:37 v #2737 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2738 > > │ 181 / 638735800696161168 / Changed
00:01:37 v #2739 > > │
00:01:37 v #2740 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2741 > > │ 47 / 638735800696161215 / Changed
00:01:37 v #2742 > > │
00:01:37 v #2743 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2744 > > │ 186 / 638735800696161401 / Changed
00:01:37 v #2745 > > │
00:01:37 v #2746 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2747 > > │ 163 / 638735800696161564 / Changed
00:01:37 v #2748 > > │
00:01:37 v #2749 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2750 > > │ 153 / 638735800696161717 / Changed
00:01:37 v #2751 > > │
00:01:37 v #2752 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2753 > > │ 152 / 638735800696161869 / Changed
00:01:37 v #2754 > > │
00:01:37 v #2755 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2756 > > │ 157 / 638735800696162026 / Changed
00:01:37 v #2757 > > │
00:01:37 v #2758 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2759 > > │ 138 / 638735800696162164 / Changed
00:01:37 v #2760 > > │
00:01:37 v #2761 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2762 > > │ 195 / 638735800696162359 / Changed
00:01:37 v #2763 > > │
00:01:37 v #2764 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2765 > > │ 49 / 638735800696162408 / Changed
00:01:37 v #2766 > > │
00:01:37 v #2767 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2768 > > │ 589 / 638735800696162997 / Changed
00:01:37 v #2769 > > │
00:01:37 v #2770 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2771 > > │ 41 / 638735800696163038 / Changed
00:01:37 v #2772 > > │
00:01:37 v #2773 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2774 > > │ 40 / 638735800696163078 / Changed
00:01:37 v #2775 > > │
00:01:37 v #2776 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c")
00:01:37 v #2777 > > │ 206 / 638735800696163284 / Changed
00:01:37 v #2778 > > │
00:01:37 v #2779 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2780 > > │ 169 / 638735800696163453 / Changed
00:01:37 v #2781 > > │
00:01:37 v #2782 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2783 > > │ 167 / 638735800696163620 / Changed
00:01:37 v #2784 > > │
00:01:37 v #2785 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2786 > > │ 155 / 638735800696163775 / Changed
00:01:37 v #2787 > > │
00:01:37 v #2788 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2789 > > │ 218 / 638735800696163993 / Changed
00:01:37 v #2790 > > │
00:01:37 v #2791 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2792 > > │ 172 / 638735800696164165 / Changed
00:01:37 v #2793 > > │
00:01:37 v #2794 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2795 > > │ 213 / 638735800696164378 / Changed
00:01:37 v #2796 > > │
00:01:37 v #2797 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2798 > > │ 345 / 638735800696164723 / Changed
00:01:37 v #2799 > > │
00:01:37 v #2800 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2801 > > │ 209 / 638735800696164932 / Changed
00:01:37 v #2802 > > │
00:01:37 v #2803 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c")
00:01:37 v #2804 > > │ 15031512 / 638735800711196444 / Deleted "file_1.txt"
00:01:37 v #2805 > > │ 3731 / 638735800711200175 / Deleted "file_2.txt"
00:01:37 v #2806 > > │ [Created ("file1.txt", Some "1a"); Changed ("file1.txt", Some
00:01:37 v #2807 > > "1a"); Created ("file2.txt", Some "2a");
00:01:37 v #2808 > > │  Changed ("file2.txt", Some "2a"); Changed ("file1.txt", Some
00:01:37 v #2809 > > "1b"); Changed ("file2.txt", Some "2b");
00:01:37 v #2810 > > │  Renamed ("file1.txt", ("file_1.txt", Some "1b")); Renamed
00:01:37 v #2811 > > ("file2.txt", ("file_2.txt", Some "2b"));
00:01:37 v #2812 > > │  Changed ("file_1.txt", Some "1c"); Changed ("file_2.txt",
00:01:37 v #2813 > > Some "2c"); Deleted "file_1.txt"; Deleted "file_2.txt"]
00:01:37 v #2814 > > │
00:01:37 v #2815 > > │ Some ()
00:01:37 v #2816 > > │
00:01:37 v #2817 > > │
00:01:37 v #2818 > >
00:01:37 v #2819 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:37 v #2820 > > │ ### testEventsSorted (test)
00:01:37 v #2821 > >
00:01:37 v #2822 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:37 v #2823 > > //// test
00:01:37 v #2824 > >
00:01:37 v #2825 > > let inline sortEvent event =
00:01:37 v #2826 > >     match event with
00:01:37 v #2827 > >     | FileSystemChange.Failure _ -> 0
00:01:37 v #2828 > >     | FileSystemChange.Created _ -> 1
00:01:37 v #2829 > >     | FileSystemChange.Changed _ -> 2
00:01:37 v #2830 > >     | FileSystemChange.Renamed (_oldPath, _) -> 3
00:01:37 v #2831 > >     | FileSystemChange.Deleted _ -> 4
00:01:37 v #2832 > >
00:01:37 v #2833 > > let inline formatEvents events =
00:01:37 v #2834 > >     events
00:01:37 v #2835 > >     |> Seq.toList
00:01:37 v #2836 > >     |> List.sortBy (snd >> sortEvent)
00:01:37 v #2837 > >     |> List.choose (fun (ticks, event) ->
00:01:37 v #2838 > >         match event with
00:01:37 v #2839 > >         | FileSystemChange.Failure _ ->
00:01:37 v #2840 > >             None
00:01:37 v #2841 > >         | FileSystemChange.Changed (path, _) ->
00:01:37 v #2842 > >             Some (ticks, System.IO.Path.GetFileName path, nameof
00:01:37 v #2843 > > FileSystemChangeType.Changed)
00:01:37 v #2844 > >         | FileSystemChange.Created (path, _) ->
00:01:37 v #2845 > >             Some (ticks, System.IO.Path.GetFileName path, nameof
00:01:37 v #2846 > > FileSystemChangeType.Created)
00:01:37 v #2847 > >         | FileSystemChange.Deleted path ->
00:01:37 v #2848 > >             Some (ticks, System.IO.Path.GetFileName path, nameof
00:01:37 v #2849 > > FileSystemChangeType.Deleted)
00:01:37 v #2850 > >         | FileSystemChange.Renamed (_oldPath, (path, _)) ->
00:01:37 v #2851 > >             Some (ticks, System.IO.Path.GetFileName path, nameof
00:01:37 v #2852 > > FileSystemChangeType.Renamed)
00:01:37 v #2853 > >     )
00:01:37 v #2854 > >     |> List.sortBy (fun (_, path, _) -> path)
00:01:37 v #2855 > >     |> List.distinctBy (fun (_, path, event) -> path, event)
00:01:37 v #2856 > >
00:01:37 v #2857 > > let inline testEventsSorted
00:01:37 v #2858 > >     (watchFn : string -> FSharp.Control.AsyncSeq<int64 * FileSystemChange> *
00:01:37 v #2859 > > IDisposable)
00:01:37 v #2860 > >     write
00:01:37 v #2861 > >     =
00:01:37 v #2862 > >     let struct (tempDir, tempDisposable) =
00:01:37 v #2863 > >         "FileSystem.testEventsSorted"
00:01:37 v #2864 > >         |> SpiralCrypto.hash_text
00:01:37 v #2865 > >         |> SpiralFileSystem.create_temp_dir'
00:01:37 v #2866 > >     let stream, disposable = watchFn tempDir
00:01:37 v #2867 > >
00:01:37 v #2868 > >     let events = System.Collections.Concurrent.ConcurrentBag ()
00:01:37 v #2869 > >
00:01:37 v #2870 > >     let inline iter () =
00:01:37 v #2871 > >         stream
00:01:37 v #2872 > >         |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {
00:01:37 v #2873 > > events.Add event })
00:01:37 v #2874 > >
00:01:37 v #2875 > >     let run = async {
00:01:37 v #2876 > >         let! _ = iter () |> Async.StartChild
00:01:37 v #2877 > >         do! Async.Sleep 250
00:01:37 v #2878 > >         return! write tempDir
00:01:37 v #2879 > >     }
00:01:37 v #2880 > >
00:01:37 v #2881 > >     try
00:01:37 v #2882 > >         run
00:01:37 v #2883 > >         |> Async.runWithTimeout 5000
00:01:37 v #2884 > >         |> _assertEqual (Some ())
00:01:37 v #2885 > >     finally
00:01:37 v #2886 > >         disposable.Dispose ()
00:01:37 v #2887 > >         tempDisposable.Dispose ()
00:01:37 v #2888 > >
00:01:37 v #2889 > >     let events = formatEvents events
00:01:37 v #2890 > >
00:01:37 v #2891 > >     let eventMap =
00:01:37 v #2892 > >         events
00:01:37 v #2893 > >         |> List.map (fun (ticks, path, event) -> path, (event, ticks))
00:01:37 v #2894 > >         |> List.groupBy fst
00:01:37 v #2895 > >         |> List.map (fun (path, events) ->
00:01:37 v #2896 > >             let event, _ticks =
00:01:37 v #2897 > >                 events
00:01:37 v #2898 > >                 |> List.map snd
00:01:37 v #2899 > >                 |> List.sortByDescending snd
00:01:37 v #2900 > >                 |> List.head
00:01:37 v #2901 > >
00:01:37 v #2902 > >             path, event
00:01:37 v #2903 > >         )
00:01:37 v #2904 > >         |> Map.ofList
00:01:37 v #2905 > >
00:01:37 v #2906 > >     let eventList =
00:01:37 v #2907 > >         events
00:01:37 v #2908 > >         |> List.map (fun (_ticks, path, event) -> path, event)
00:01:37 v #2909 > >
00:01:37 v #2910 > >     eventMap, eventList
00:01:37 v #2911 > >
00:01:37 v #2912 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:37 v #2913 > > │ #### create and delete (test)
00:01:37 v #2914 > >
00:01:37 v #2915 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:37 v #2916 > > //// test
00:01:37 v #2917 > >
00:01:37 v #2918 > > let inline write path = async {
00:01:37 v #2919 > >     let n = 3
00:01:37 v #2920 > >
00:01:37 v #2921 > >     for i = 1 to n do
00:01:37 v #2922 > >         do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </>
00:01:37 v #2923 > > $"file{i}.txt")
00:01:37 v #2924 > >
00:01:37 v #2925 > >     for i = 1 to n do
00:01:37 v #2926 > >         do! SpiralFileSystem.delete_file_async (path </> $"file{i}.txt") |>
00:01:37 v #2927 > > Async.Ignore
00:01:37 v #2928 > >
00:01:37 v #2929 > >     do! Async.Sleep 150
00:01:37 v #2930 > > }
00:01:37 v #2931 > >
00:01:37 v #2932 > > let inline run () =
00:01:37 v #2933 > >     let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:01:37 v #2934 > > write
00:01:37 v #2935 > >
00:01:37 v #2936 > >     [[
00:01:37 v #2937 > >         "file1.txt", nameof FileSystemChangeType.Created
00:01:37 v #2938 > >         "file1.txt", nameof FileSystemChangeType.Changed
00:01:37 v #2939 > >         "file1.txt", nameof FileSystemChangeType.Deleted
00:01:37 v #2940 > >
00:01:37 v #2941 > >         "file2.txt", nameof FileSystemChangeType.Created
00:01:37 v #2942 > >         "file2.txt", nameof FileSystemChangeType.Changed
00:01:37 v #2943 > >         "file2.txt", nameof FileSystemChangeType.Deleted
00:01:37 v #2944 > >
00:01:37 v #2945 > >         "file3.txt", nameof FileSystemChangeType.Created
00:01:37 v #2946 > >         "file3.txt", nameof FileSystemChangeType.Changed
00:01:37 v #2947 > >         "file3.txt", nameof FileSystemChangeType.Deleted
00:01:37 v #2948 > >     ]]
00:01:37 v #2949 > >     |> _sequenceEqual eventList
00:01:37 v #2950 > >
00:01:37 v #2951 > >     [[
00:01:37 v #2952 > >         "file1.txt", nameof FileSystemChangeType.Deleted
00:01:37 v #2953 > >         "file2.txt", nameof FileSystemChangeType.Deleted
00:01:37 v #2954 > >         "file3.txt", nameof FileSystemChangeType.Deleted
00:01:37 v #2955 > >     ]]
00:01:37 v #2956 > >     |> Map.ofList
00:01:37 v #2957 > >     |> _sequenceEqual eventMap
00:01:37 v #2958 > >
00:01:37 v #2959 > > run
00:01:37 v #2960 > > |> retry_fn 3
00:01:37 v #2961 > > |> _assertEqual (Some ())
00:01:38 v #2962 > >
00:01:38 v #2963 > > ── [ 1.01s - stdout ] ──────────────────────────────────────────────────────────
00:01:38 v #2964 > > │ Some ()
00:01:38 v #2965 > > │
00:01:38 v #2966 > > │ 00:00:16 d #5 FileSystem.watchWithFilter / Disposing
00:01:38 v #2967 > > watch stream / filter: FileName, LastWrite
00:01:38 v #2968 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed");
00:01:38 v #2969 > > ("file1.txt", "Deleted"); ("file2.txt", "Created");
00:01:38 v #2970 > > │  ("file2.txt", "Changed"); ("file2.txt", "Deleted");
00:01:38 v #2971 > > ("file3.txt", "Created"); ("file3.txt", "Changed");
00:01:38 v #2972 > > │  ("file3.txt", "Deleted")]
00:01:38 v #2973 > > │
00:01:38 v #2974 > > │ map [("file1.txt", "Deleted"); ("file2.txt", "Deleted");
00:01:38 v #2975 > > ("file3.txt", "Deleted")]
00:01:38 v #2976 > > │
00:01:38 v #2977 > > │ Some ()
00:01:38 v #2978 > > │
00:01:38 v #2979 > > │
00:01:38 v #2980 > >
00:01:38 v #2981 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 v #2982 > > │ #### change (test)
00:01:38 v #2983 > >
00:01:38 v #2984 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:38 v #2985 > > //// test
00:01:38 v #2986 > >
00:01:38 v #2987 > > let inline write path = async {
00:01:38 v #2988 > >     let n = 2
00:01:38 v #2989 > >
00:01:38 v #2990 > >     for i = 1 to n do
00:01:38 v #2991 > >         do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </>
00:01:38 v #2992 > > $"file{i}.txt")
00:01:38 v #2993 > >
00:01:38 v #2994 > >     for i = 1 to n do
00:01:38 v #2995 > >         do! "" |> SpiralFileSystem.write_all_text_async (path </>
00:01:38 v #2996 > > $"file{i}.txt")
00:01:38 v #2997 > >
00:01:38 v #2998 > >     for i = 1 to n do
00:01:38 v #2999 > >         do! SpiralFileSystem.delete_file_async (path </> $"file{i}.txt") |>
00:01:38 v #3000 > > Async.Ignore
00:01:38 v #3001 > >
00:01:38 v #3002 > >     do! Async.Sleep 150
00:01:38 v #3003 > > }
00:01:38 v #3004 > >
00:01:38 v #3005 > > let inline run () =
00:01:38 v #3006 > >     let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:01:38 v #3007 > > write
00:01:38 v #3008 > >
00:01:38 v #3009 > >     [[
00:01:38 v #3010 > >         "file1.txt", nameof FileSystemChangeType.Created
00:01:38 v #3011 > >         "file1.txt", nameof FileSystemChangeType.Changed
00:01:38 v #3012 > >         "file1.txt", nameof FileSystemChangeType.Deleted
00:01:38 v #3013 > >
00:01:38 v #3014 > >         "file2.txt", nameof FileSystemChangeType.Created
00:01:38 v #3015 > >         "file2.txt", nameof FileSystemChangeType.Changed
00:01:38 v #3016 > >         "file2.txt", nameof FileSystemChangeType.Deleted
00:01:38 v #3017 > >     ]]
00:01:38 v #3018 > >     |> _sequenceEqual eventList
00:01:38 v #3019 > >
00:01:38 v #3020 > >     [[
00:01:38 v #3021 > >         "file1.txt", nameof FileSystemChangeType.Deleted
00:01:38 v #3022 > >         "file2.txt", nameof FileSystemChangeType.Deleted
00:01:38 v #3023 > >     ]]
00:01:38 v #3024 > >     |> Map.ofList
00:01:38 v #3025 > >     |> _sequenceEqual eventMap
00:01:38 v #3026 > >
00:01:38 v #3027 > > run
00:01:38 v #3028 > > |> retry_fn 3
00:01:38 v #3029 > > |> _assertEqual (Some ())
00:01:39 v #3030 > >
00:01:39 v #3031 > > ── [ 1.12s - stdout ] ──────────────────────────────────────────────────────────
00:01:39 v #3032 > > │ Some ()
00:01:39 v #3033 > > │
00:01:39 v #3034 > > │ 00:00:17 d #6 FileSystem.watchWithFilter / Disposing
00:01:39 v #3035 > > watch stream / filter: FileName, LastWrite
00:01:39 v #3036 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed");
00:01:39 v #3037 > > ("file1.txt", "Deleted"); ("file2.txt", "Created");
00:01:39 v #3038 > > │  ("file2.txt", "Changed"); ("file2.txt", "Deleted")]
00:01:39 v #3039 > > │
00:01:39 v #3040 > > │ map [("file1.txt", "Deleted"); ("file2.txt", "Deleted")]
00:01:39 v #3041 > > │
00:01:39 v #3042 > > │ Some ()
00:01:39 v #3043 > > │
00:01:39 v #3044 > > │
00:01:39 v #3045 > >
00:01:39 v #3046 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:39 v #3047 > > │ #### rename (test)
00:01:39 v #3048 > >
00:01:39 v #3049 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:39 v #3050 > > //// test
00:01:39 v #3051 > >
00:01:39 v #3052 > > let inline write path = async {
00:01:39 v #3053 > >     let n = 2
00:01:39 v #3054 > >
00:01:39 v #3055 > >     for i = 1 to n do
00:01:39 v #3056 > >         do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </>
00:01:39 v #3057 > > $"file{i}.txt")
00:01:39 v #3058 > >
00:01:39 v #3059 > >     for i = 1 to n do
00:01:39 v #3060 > >         do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path
00:01:39 v #3061 > > </> $"file_{i}.txt") |> Async.Ignore
00:01:39 v #3062 > >
00:01:39 v #3063 > >     for i = 1 to n do
00:01:39 v #3064 > >         do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |>
00:01:39 v #3065 > > Async.Ignore
00:01:39 v #3066 > >
00:01:39 v #3067 > >     do! Async.Sleep 150
00:01:39 v #3068 > > }
00:01:39 v #3069 > >
00:01:39 v #3070 > > let inline run () =
00:01:39 v #3071 > >     let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:01:39 v #3072 > > write
00:01:39 v #3073 > >
00:01:39 v #3074 > >     [[
00:01:39 v #3075 > >         "file1.txt", nameof FileSystemChangeType.Created
00:01:39 v #3076 > >         "file1.txt", nameof FileSystemChangeType.Changed
00:01:39 v #3077 > >         "file2.txt", nameof FileSystemChangeType.Created
00:01:39 v #3078 > >         "file2.txt", nameof FileSystemChangeType.Changed
00:01:39 v #3079 > >
00:01:39 v #3080 > >         "file_1.txt", nameof FileSystemChangeType.Renamed
00:01:39 v #3081 > >         "file_1.txt", nameof FileSystemChangeType.Deleted
00:01:39 v #3082 > >
00:01:39 v #3083 > >         "file_2.txt", nameof FileSystemChangeType.Renamed
00:01:39 v #3084 > >         "file_2.txt", nameof FileSystemChangeType.Deleted
00:01:39 v #3085 > >     ]]
00:01:39 v #3086 > >     |> _sequenceEqual eventList
00:01:39 v #3087 > >
00:01:39 v #3088 > >     [[
00:01:39 v #3089 > >         "file1.txt", nameof FileSystemChangeType.Changed
00:01:39 v #3090 > >         "file2.txt", nameof FileSystemChangeType.Changed
00:01:39 v #3091 > >         "file_1.txt", nameof FileSystemChangeType.Deleted
00:01:39 v #3092 > >         "file_2.txt", nameof FileSystemChangeType.Deleted
00:01:39 v #3093 > >     ]]
00:01:39 v #3094 > >     |> Map.ofList
00:01:39 v #3095 > >     |> _sequenceEqual eventMap
00:01:39 v #3096 > >
00:01:39 v #3097 > > run
00:01:39 v #3098 > > |> retry_fn 3
00:01:39 v #3099 > > |> _assertEqual (Some ())
00:01:40 v #3100 > >
00:01:40 v #3101 > > ── [ 1.13s - stdout ] ──────────────────────────────────────────────────────────
00:01:40 v #3102 > > │ Some ()
00:01:40 v #3103 > > │
00:01:40 v #3104 > > │ 00:00:19 d #7 FileSystem.watchWithFilter / Disposing
00:01:40 v #3105 > > watch stream / filter: FileName, LastWrite
00:01:40 v #3106 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed");
00:01:40 v #3107 > > ("file2.txt", "Created"); ("file2.txt", "Changed");
00:01:40 v #3108 > > │  ("file_1.txt", "Renamed"); ("file_1.txt", "Deleted");
00:01:40 v #3109 > > ("file_2.txt", "Renamed"); ("file_2.txt", "Deleted")]
00:01:40 v #3110 > > │
00:01:40 v #3111 > > │ map [("file1.txt", "Changed"); ("file2.txt", "Changed");
00:01:40 v #3112 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Deleted")]
00:01:40 v #3113 > > │
00:01:40 v #3114 > > │ Some ()
00:01:40 v #3115 > > │
00:01:40 v #3116 > > │
00:01:40 v #3117 > >
00:01:40 v #3118 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 v #3119 > > │ #### full (test)
00:01:40 v #3120 > >
00:01:40 v #3121 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:40 v #3122 > > //// test
00:01:40 v #3123 > >
00:01:40 v #3124 > > let inline write path = async {
00:01:40 v #3125 > >     let n = 2
00:01:40 v #3126 > >
00:01:40 v #3127 > >     for i = 1 to n do
00:01:40 v #3128 > >         do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </>
00:01:40 v #3129 > > $"file{i}.txt")
00:01:40 v #3130 > >
00:01:40 v #3131 > >     for i = 1 to n do
00:01:40 v #3132 > >         do! "" |> SpiralFileSystem.write_all_text_async (path </>
00:01:40 v #3133 > > $"file{i}.txt")
00:01:40 v #3134 > >
00:01:40 v #3135 > >     for i = 1 to n do
00:01:40 v #3136 > >         do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path
00:01:40 v #3137 > > </> $"file_{i}.txt") |> Async.Ignore
00:01:40 v #3138 > >
00:01:40 v #3139 > >     for i = 1 to n do
00:01:40 v #3140 > >         do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </>
00:01:40 v #3141 > > $"file_{i}.txt")
00:01:40 v #3142 > >
00:01:40 v #3143 > >     for i = 1 to n do
00:01:40 v #3144 > >         do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |>
00:01:40 v #3145 > > Async.Ignore
00:01:40 v #3146 > >
00:01:40 v #3147 > >     do! Async.Sleep 150
00:01:40 v #3148 > > }
00:01:40 v #3149 > >
00:01:40 v #3150 > > let inline run () =
00:01:40 v #3151 > >     let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:01:40 v #3152 > > write
00:01:40 v #3153 > >
00:01:40 v #3154 > >     [[
00:01:40 v #3155 > >         "file1.txt", nameof FileSystemChangeType.Created
00:01:40 v #3156 > >         "file1.txt", nameof FileSystemChangeType.Changed
00:01:40 v #3157 > >         "file2.txt", nameof FileSystemChangeType.Created
00:01:40 v #3158 > >         "file2.txt", nameof FileSystemChangeType.Changed
00:01:40 v #3159 > >
00:01:40 v #3160 > >         "file_1.txt", nameof FileSystemChangeType.Changed
00:01:40 v #3161 > >         "file_1.txt", nameof FileSystemChangeType.Renamed
00:01:40 v #3162 > >         "file_1.txt", nameof FileSystemChangeType.Deleted
00:01:40 v #3163 > >
00:01:40 v #3164 > >         "file_2.txt", nameof FileSystemChangeType.Changed
00:01:40 v #3165 > >         "file_2.txt", nameof FileSystemChangeType.Renamed
00:01:40 v #3166 > >         "file_2.txt", nameof FileSystemChangeType.Deleted
00:01:40 v #3167 > >     ]]
00:01:40 v #3168 > >     |> _sequenceEqual eventList
00:01:40 v #3169 > >
00:01:40 v #3170 > >     [[
00:01:40 v #3171 > >         "file1.txt", nameof FileSystemChangeType.Changed
00:01:40 v #3172 > >         "file2.txt", nameof FileSystemChangeType.Changed
00:01:40 v #3173 > >         "file_1.txt", nameof FileSystemChangeType.Deleted
00:01:40 v #3174 > >         "file_2.txt", nameof FileSystemChangeType.Deleted
00:01:40 v #3175 > >     ]]
00:01:40 v #3176 > >     |> Map.ofList
00:01:40 v #3177 > >     |> _sequenceEqual eventMap
00:01:40 v #3178 > >
00:01:40 v #3179 > > run
00:01:40 v #3180 > > |> retry_fn 3
00:01:40 v #3181 > > |> _assertEqual (Some ())
00:01:42 v #3182 > >
00:01:42 v #3183 > > ── [ 1.29s - stdout ] ──────────────────────────────────────────────────────────
00:01:42 v #3184 > > │ Some ()
00:01:42 v #3185 > > │
00:01:42 v #3186 > > │ 00:00:20 d #8 FileSystem.watchWithFilter / Disposing
00:01:42 v #3187 > > watch stream / filter: FileName, LastWrite
00:01:42 v #3188 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed");
00:01:42 v #3189 > > ("file2.txt", "Created"); ("file2.txt", "Changed");
00:01:42 v #3190 > > │  ("file_1.txt", "Changed"); ("file_1.txt", "Renamed");
00:01:42 v #3191 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Changed");
00:01:42 v #3192 > > │  ("file_2.txt", "Renamed"); ("file_2.txt", "Deleted")]
00:01:42 v #3193 > > │
00:01:42 v #3194 > > │ map [("file1.txt", "Changed"); ("file2.txt", "Changed");
00:01:42 v #3195 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Deleted")]
00:01:42 v #3196 > > │
00:01:42 v #3197 > > │ Some ()
00:01:42 v #3198 > > │
00:01:42 v #3199 > > │
00:01:42 v #3200 > 00:00:34 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 105206 }
00:01:42 v #3201 > 00:00:34 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:01:43 v #3202 > 00:00:35 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb to html
00:01:43 v #3203 > 00:00:35 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:43 v #3204 > 00:00:35 v #7 !   validate(nb)
00:01:43 v #3205 > 00:00:35 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:43 v #3206 > 00:00:35 v #9 !   return _pygments_highlight(
00:01:43 v #3207 > 00:00:36 v #10 ! [NbConvertApp] Writing 432859 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.html
00:01:43 v #3208 > 00:00:36 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 904 }
00:01:43 v #3209 > 00:00:36 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 904 }
00:01:43 v #3210 > 00:00:36 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:01:44 v #3211 > 00:00:36 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:01:44 v #3212 > 00:00:36 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:01:44 v #3213 > 00:00:36 d #16 spiral.run / dib / { exit_code = 0; result_length = 106169 }
00:01:44 d #3214 runtime.execute_with_options_async / { exit_code = 0; output_length = 113506 }
00:01:44 d #7 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path FileSystem.dib --retries 3
00:01:44 d #3215 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Runtime.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:01:44 v #3216 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Runtime.dib", "--retries", "3"])) }
00:01:44 v #3217 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:01:45 v #3218 > >
00:01:45 v #3219 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:45 v #3220 > > │ # Runtime (Polyglot)
00:01:48 v #3221 > >
00:01:48 v #3222 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:48 v #3223 > > #r
00:01:48 v #3224 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:01:48 v #3225 > > dard2.1/FSharp.Control.AsyncSeq.dll"
00:01:48 v #3226 > > #r
00:01:48 v #3227 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:01:48 v #3228 > > 0/System.Reactive.dll"
00:01:48 v #3229 > > #r
00:01:48 v #3230 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:01:48 v #3231 > > netstandard2.0/System.Reactive.Linq.dll"
00:01:48 v #3232 > > #r
00:01:48 v #3233 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
00:01:59 v #3234 > >
00:01:59 v #3235 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3236 > > #if !INTERACTIVE
00:01:59 v #3237 > > open Lib
00:01:59 v #3238 > > #endif
00:01:59 v #3239 > >
00:01:59 v #3240 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3241 > > open Common
00:01:59 v #3242 > >
00:01:59 v #3243 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3244 > > //// test
00:01:59 v #3245 > >
00:01:59 v #3246 > > open SpiralFileSystem.Operators
00:01:59 v #3247 > >
00:01:59 v #3248 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:59 v #3249 > > │ ## parseArgs
00:01:59 v #3250 > >
00:01:59 v #3251 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3252 > > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args =
00:01:59 v #3253 > >     let assemblyName =
00:01:59 v #3254 > > System.Reflection.Assembly.GetEntryAssembly().GetName().Name
00:01:59 v #3255 > >     let errorHandler : Argu.IExiter =
00:01:59 v #3256 > >         if [[ "Microsoft.DotNet.Interactive.App"; "dotnet-repl" ]] |>
00:01:59 v #3257 > > List.contains assemblyName
00:01:59 v #3258 > >         then Argu.ExceptionExiter ()
00:01:59 v #3259 > >         else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ ->
00:01:59 v #3260 > > Some System.ConsoleColor.Red)
00:01:59 v #3261 > >
00:01:59 v #3262 > >     let parser =
00:01:59 v #3263 > >         Argu.ArgumentParser.Create<'T> (
00:01:59 v #3264 > >             programName = $"{assemblyName}{SpiralPlatform.get_executable_suffix
00:01:59 v #3265 > > ()}",
00:01:59 v #3266 > >             errorHandler = errorHandler
00:01:59 v #3267 > >         )
00:01:59 v #3268 > >
00:01:59 v #3269 > >     parser.ParseCommandLine args
00:01:59 v #3270 > >
00:01:59 v #3271 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3272 > > //// test
00:01:59 v #3273 > >
00:01:59 v #3274 > > [[<RequireQualifiedAccess>]]
00:01:59 v #3275 > > type Arguments =
00:01:59 v #3276 > >     | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce;
00:01:59 v #3277 > > Argu.ArguAttributes.Last>]]
00:01:59 v #3278 > >         Paths of paths : string list
00:01:59 v #3279 > >
00:01:59 v #3280 > >     interface Argu.IArgParserTemplate with
00:01:59 v #3281 > >         member s.Usage =
00:01:59 v #3282 > >             match s with
00:01:59 v #3283 > >             | Paths _ -> nameof Paths
00:01:59 v #3284 > >
00:01:59 v #3285 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3286 > > //// test
00:01:59 v #3287 > >
00:01:59 v #3288 > > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
00:01:59 v #3289 > >
00:01:59 v #3290 > > ── [ 85.14ms - return value ] ──────────────────────────────────────────────────
00:01:59 v #3291 > > │ "USAGE: dotnet-repl [--help] <paths>...
00:01:59 v #3292 > > │
00:01:59 v #3293 > > │ PATHS:
00:01:59 v #3294 > > │
00:01:59 v #3295 > > │     <paths>...            Paths
00:01:59 v #3296 > > │
00:01:59 v #3297 > > │ OPTIONS:
00:01:59 v #3298 > > │
00:01:59 v #3299 > > │     --help                display this list of options.
00:01:59 v #3300 > > │ "
00:01:59 v #3301 > > │
00:01:59 v #3302 > >
00:01:59 v #3303 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3304 > > //// test
00:01:59 v #3305 > >
00:01:59 v #3306 > > fun () -> parseArgs<Arguments> [[||]] |> ignore
00:01:59 v #3307 > > |> _throwsC (fun ex _ ->
00:01:59 v #3308 > >     SpiralSm.format_exception ex
00:01:59 v #3309 > >     |> _stringContains "Argu.ArguParseException: ERROR: missing parameter
00:01:59 v #3310 > > '<paths>...'."
00:01:59 v #3311 > > )
00:01:59 v #3312 > >
00:01:59 v #3313 > > ── [ 43.88ms - stdout ] ────────────────────────────────────────────────────────
00:01:59 v #3314 > > │ <fun:it@3-3>
00:01:59 v #3315 > > │
00:01:59 v #3316 > > │ "Argu.ArguParseException: ERROR: missing parameter
00:01:59 v #3317 > > '<paths>...'.
00:01:59 v #3318 > > │ USAGE: dotnet-repl [--help] <paths>...
00:01:59 v #3319 > > │
00:01:59 v #3320 > > │ PATHS:
00:01:59 v #3321 > > │
00:01:59 v #3322 > > │     <paths>...            Paths
00:01:59 v #3323 > > │
00:01:59 v #3324 > > │ OPTIONS:
00:01:59 v #3325 > > │
00:01:59 v #3326 > > │     --help                display this list of options.
00:01:59 v #3327 > > │ "
00:01:59 v #3328 > > │
00:01:59 v #3329 > > │
00:01:59 v #3330 > >
00:01:59 v #3331 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3332 > > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args =
00:01:59 v #3333 > >     args
00:01:59 v #3334 > >     |> parseArgs<'T>
00:01:59 v #3335 > >     |> fun results -> results.GetAllResults ()
00:01:59 v #3336 > >
00:01:59 v #3337 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3338 > > //// test
00:01:59 v #3339 > >
00:01:59 v #3340 > > [[<RequireQualifiedAccess>]]
00:01:59 v #3341 > > type Arguments =
00:01:59 v #3342 > >     | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce;
00:01:59 v #3343 > > Argu.ArguAttributes.Last>]]
00:01:59 v #3344 > >         Paths of paths : string list
00:01:59 v #3345 > >
00:01:59 v #3346 > >     interface Argu.IArgParserTemplate with
00:01:59 v #3347 > >         member s.Usage =
00:01:59 v #3348 > >             match s with
00:01:59 v #3349 > >             | Paths _ -> nameof Paths
00:01:59 v #3350 > >
00:01:59 v #3351 > > parseAllArgs<Arguments> [[| "a b"; "c" |]]
00:01:59 v #3352 > > |> _assertEqual [[ Arguments.Paths [[ "a b"; "c" ]] ]]
00:01:59 v #3353 > >
00:01:59 v #3354 > > ── [ 78.53ms - stdout ] ────────────────────────────────────────────────────────
00:01:59 v #3355 > > │ [Paths ["a b"; "c"]]
00:01:59 v #3356 > > │
00:01:59 v #3357 > > │
00:01:59 v #3358 > >
00:01:59 v #3359 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3360 > > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args =
00:01:59 v #3361 > >     args
00:01:59 v #3362 > >     |> parseAllArgs<'T>
00:01:59 v #3363 > >     |> List.groupBy CommonFSharp.getUnionCaseName<'T>
00:01:59 v #3364 > >     |> Map.ofList
00:01:59 v #3365 > >
00:01:59 v #3366 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:59 v #3367 > > //// test
00:01:59 v #3368 > >
00:01:59 v #3369 > > parseArgsMap<Arguments> [[| "a b"; "c" |]]
00:01:59 v #3370 > > |> _assertEqual (
00:01:59 v #3371 > >     [[ nameof Arguments.Paths, [[ Arguments.Paths [[ "a b"; "c" ]] ]] ]]
00:01:59 v #3372 > >     |> Map.ofList
00:01:59 v #3373 > > )
00:01:59 v #3374 > >
00:01:59 v #3375 > > ── [ 44.58ms - stdout ] ────────────────────────────────────────────────────────
00:01:59 v #3376 > > │ map [("Paths", [Paths ["a b"; "c"]])]
00:01:59 v #3377 > > │
00:01:59 v #3378 > > │
00:01:59 v #3379 > 00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 5715 }
00:01:59 v #3380 > 00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:02:00 v #3381 > 00:00:15 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb to html
00:02:00 v #3382 > 00:00:15 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:00 v #3383 > 00:00:15 v #7 !   validate(nb)
00:02:00 v #3384 > 00:00:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:00 v #3385 > 00:00:16 v #9 !   return _pygments_highlight(
00:02:00 v #3386 > 00:00:16 v #10 ! [NbConvertApp] Writing 292952 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.html
00:02:00 v #3387 > 00:00:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 898 }
00:02:00 v #3388 > 00:00:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 898 }
00:02:00 v #3389 > 00:00:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:02:01 v #3390 > 00:00:16 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:02:01 v #3391 > 00:00:16 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:02:01 v #3392 > 00:00:16 d #16 spiral.run / dib / { exit_code = 0; result_length = 6672 }
00:02:01 d #3393 runtime.execute_with_options_async / { exit_code = 0; output_length = 9656 }
00:02:01 d #8 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Runtime.dib --retries 3
00:02:01 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 writeDibCode / output: Fs / path: Common.dib
00:00:00 d #1 writeDibCode / output: Fs / path: Async.dib
00:00:00 d #1 writeDibCode / output: Fs / path: AsyncSeq.dib
00:00:00 d #1 writeDibCode / output: Fs / path: CommonFSharp.dib
00:00:00 d #2 parseDibCode / output: Fs / file: Common.dib
00:00:00 d #3 parseDibCode / output: Fs / file: CommonFSharp.dib
00:00:00 d #4 parseDibCode / output: Fs / file: AsyncSeq.dib
00:00:00 d #5 parseDibCode / output: Fs / file: Async.dib
00:00:00 d #6 writeDibCode / output: Fs / path: FileSystem.dib
00:00:00 d #8 parseDibCode / output: Fs / file: FileSystem.dib
00:00:00 d #7 writeDibCode / output: Fs / path: Runtime.dib
00:00:00 d #9 parseDibCode / output: Fs / file: Runtime.dib
In [ ]:
{ pwsh ../deps/spiral/apps/wasm/build.ps1 -SkipFsx 1 } | Invoke-Block
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral_wasm / hash:  / code.Length: 232460
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/spiral_wasm
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm
polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/deps/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target:  / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/deps/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm / ProjectName: spiral_wasm / Language: rs / Runtime:  / root: /home/runner/work/polyglot/polyglot
Fable 5.0.0-alpha.7: F# to Rust compiler (status: alpha)

Thanks to the contributor! @mexx
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target/Builder/spiral_wasm/spiral_wasm.fsproj...
Project and references (14 source files) parsed in 3289ms

Started Fable compilation...

Fable compilation finished in 8777ms

./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.rs
spiral/apps/wasm/build.ps1 / path: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/spiral_wasm.rs
 Downloading crates ...
  Downloaded sync_wrapper v0.1.2
  Downloaded strum v0.24.1
  Downloaded symbolic-common v8.8.0
  Downloaded newline-converter v0.3.0
  Downloaded opentelemetry-otlp v0.15.0
  Downloaded scroll_derive v0.11.1
  Downloaded serde_repr v0.1.19
  Downloaded reed-solomon-erasure v4.0.2
  Downloaded protobuf v2.28.0
  Downloaded hyper v0.14.32
  Downloaded rustls v0.23.20
  Downloaded ordered-stream v0.2.0
  Downloaded owo-colors v3.5.0
  Downloaded opentelemetry-semantic-conventions v0.14.0
  Downloaded password-hash v0.4.2
  Downloaded near-rpc-error-macro v0.23.0
  Downloaded opentelemetry_sdk v0.22.1
  Downloaded secp256k1-sys v0.8.1
  Downloaded near-workspaces v0.11.1
  Downloaded near-o11y v0.23.0
  Downloaded near-fmt v0.23.0
  Downloaded interactive-clap v0.2.10
  Downloaded near-chain-configs v0.23.0
  Downloaded near-async v0.23.0
  Downloaded sha2 v0.9.9
  Downloaded serde_with_macros v3.12.0
  Downloaded csv v1.3.1
  Downloaded near-stdx v0.23.0
  Downloaded serde_yaml v0.9.34+deprecated
  Downloaded sha3 v0.10.8
  Downloaded serde_with v3.12.0
  Downloaded near-cli-rs v0.11.1
  Downloaded wasmparser v0.211.1
  Downloaded cargo-near v0.6.4
  Downloaded near-rpc-error-core v0.23.0
  Downloaded near-jsonrpc-primitives v0.23.0
  Downloaded near-jsonrpc-client v0.10.1
  Downloaded near-async-derive v0.23.0
  Downloaded near-primitives v0.23.0
  Downloaded interactive-clap-derive v0.2.10
  Downloaded near-primitives-core v0.23.0
  Downloaded near-performance-metrics v0.23.0
  Downloaded near-parameters v0.23.0
  Downloaded gimli v0.26.2
  Downloaded num-bigint v0.3.3
  Downloaded near-time v0.23.0
  Downloaded color-eyre v0.6.3
  Downloaded num v0.4.3
  Downloaded near-socialdb-client v0.3.2
  Downloaded near-sandbox-utils v0.9.0
  Downloaded near-crypto v0.23.0
  Downloaded easy-ext v1.0.2
  Downloaded nom-supreme v0.6.0
  Downloaded linux-raw-sys v0.3.8
  Downloaded ordered-float v4.6.0
  Downloaded rustix v0.38.42
  Downloaded rustix v0.37.28
  Downloaded openssl v0.10.68
  Downloaded gimli v0.28.1
  Downloaded curve25519-dalek v4.1.3
  Downloaded portable-atomic v1.10.0
  Downloaded h2 v0.3.26
  Downloaded goblin v0.5.4
  Downloaded color-spantrace v0.2.1
  Downloaded axum v0.6.20
  Downloaded prometheus v0.13.4
  Downloaded pdb v0.7.0
  Downloaded opentelemetry v0.22.0
  Downloaded near-config-utils v0.23.0
  Downloaded crossterm v0.25.0
  Downloaded bip39 v2.1.0
  Downloaded semver v1.0.24
  Downloaded secret-service v3.1.0
  Downloaded scroll v0.11.0
  Downloaded scroll v0.10.2
  Downloaded prost-derive v0.12.6
  Downloaded prost v0.12.6
  Downloaded proc-macro-crate v3.2.0
  Downloaded proc-macro-crate v1.3.1
  Downloaded primitive-types v0.10.1
  Downloaded prettytable v0.10.0
  Downloaded prettyplease v0.1.25
  Downloaded polling v2.8.0
  Downloaded plain v0.2.3
  Downloaded pbkdf2 v0.11.0
  Downloaded num-rational v0.4.2
  Downloaded num-rational v0.3.2
  Downloaded num-complex v0.4.6
  Downloaded nix v0.26.4
  Downloaded zbus v3.15.2
  Downloaded winnow v0.6.22
  Downloaded tracing-opentelemetry v0.23.0
  Downloaded inquire v0.7.5
  Downloaded indicatif v0.17.9
  Downloaded indexmap v2.7.0
  Downloaded http v0.2.12
  Downloaded ed25519-dalek v2.1.1
  Downloaded darling_core v0.20.10
  Downloaded cc v1.2.7
  Downloaded bs58 v0.4.0
  Downloaded borsh v1.5.3
  Downloaded backtrace v0.3.71
  Downloaded actix v0.13.5
  Downloaded phf_shared v0.10.0
  Downloaded secp256k1 v0.27.0
  Downloaded opentelemetry-proto v0.5.0
  Downloaded opaque-debug v0.3.1
  Downloaded near-sdk v5.7.0
  Downloaded miniz_oxide v0.8.2
  Downloaded zvariant v3.15.2
  Downloaded xml-rs v0.8.25
  Downloaded wasmparser v0.83.0
  Downloaded uriparse v0.6.4
  Downloaded ureq v2.12.1
  Downloaded unicode-normalization v0.1.22
  Downloaded tonic v0.11.0
  Downloaded symbolic-debuginfo v8.8.0
  Downloaded is-terminal v0.4.13
  Downloaded indexmap v1.9.3
  Downloaded futures-lite v1.13.0
  Downloaded fluent-uri v0.1.4
  Downloaded encode_unicode v1.0.0
  Downloaded elementtree v0.7.0
  Downloaded easy-ext v0.2.9
  Downloaded derivative v2.2.0
  Downloaded colored v2.2.0
  Downloaded cargo-util v0.1.2
  Downloaded bs58 v0.5.1
  Downloaded borsh-derive v1.5.3
  Downloaded blake2 v0.10.6
  Downloaded bitcoin_hashes v0.13.0
  Downloaded async-lock v2.8.0
  Downloaded async-io v1.13.0
  Downloaded async-executor v1.13.1
  Downloaded arbitrary v1.4.1
  Downloaded addr2line v0.21.0
  Downloaded near-token v0.3.0
  Downloaded near-token v0.2.1
  Downloaded near-sdk-macros v5.7.0
  Downloaded near-abi v0.4.3
  Downloaded native-tls v0.2.12
  Downloaded names v0.14.0
  Downloaded miniz_oxide v0.7.4
  Downloaded memoffset v0.7.1
  Downloaded memmap2 v0.5.10
  Downloaded libloading v0.8.6
  Downloaded keyring v2.3.3
  Downloaded keccak v0.1.5
  Downloaded jsonptr v0.4.7
  Downloaded zvariant_utils v1.0.1
  Downloaded zvariant_derive v3.15.2
  Downloaded zstd-safe v5.0.2+zstd.1.5.2
  Downloaded zstd v0.11.2+zstd.1.5.2
  Downloaded zip v0.5.13
  Downloaded zbus_names v2.6.1
  Downloaded zbus_macros v3.15.2
  Downloaded vte_generate_state_changes v0.1.2
  Downloaded vte v0.11.1
  Downloaded vt100 v0.15.2
  Downloaded uuid v0.8.2
  Downloaded unicode-linebreak v0.1.5
  Downloaded uint v0.9.5
  Downloaded tracing-indicatif v0.3.8
  Downloaded tracing-error v0.2.1
  Downloaded tracing-appender v0.2.3
  Downloaded textwrap v0.16.1
  Downloaded term v0.7.0
  Downloaded socket2 v0.4.10
  Downloaded signal-hook-mio v0.2.4
  Downloaded signal-hook v0.3.17
  Downloaded json-patch v2.0.0
  Downloaded joinery v2.1.0
  Downloaded ipnet v2.10.1
  Downloaded io-lifetimes v1.0.11
  Downloaded indent_write v2.2.0
  Downloaded hyper-timeout v0.4.1
  Downloaded http-body v0.4.6
  Downloaded hex-conservative v0.1.2
  Downloaded hex v0.3.2
  Downloaded heck v0.4.1
  Downloaded glob v0.3.2
  Downloaded fuzzy-matcher v0.3.7
  Downloaded fs2 v0.4.3
  Downloaded fixed-hash v0.7.0
  Downloaded fastrand v1.9.0
  Downloaded fallible-iterator v0.2.0
  Downloaded event-listener v2.5.3
  Downloaded enumflags2_derive v0.7.10
  Downloaded enumflags2 v0.7.10
  Downloaded enum-map-derive v0.17.0
  Downloaded enum-map v2.7.3
  Downloaded ed25519 v2.2.3
  Downloaded dmsort v1.0.2
  Downloaded dirs v5.0.1
  Downloaded digest v0.9.0
  Downloaded derive_arbitrary v1.4.1
  Downloaded debugid v0.7.3
  Downloaded darling v0.20.10
  Downloaded csv-core v0.1.11
  Downloaded crypto-mac v0.9.1
  Downloaded crypto-hash v0.3.4
  Downloaded bitcoin-internals v0.2.0
  Downloaded binary-install v0.2.0
  Downloaded axum-core v0.3.4
  Downloaded async-stream v0.3.6
  Downloaded actix_derive v0.6.2
  Downloaded Inflector v0.11.4
  Downloaded new_debug_unreachable v1.0.6
  Downloaded near_schemafy_lib v0.7.0
  Downloaded near_schemafy_core v0.7.0
  Downloaded near-sys v0.2.2
  Downloaded near-sandbox-utils v0.13.0
  Downloaded near-sandbox-utils v0.8.0
  Downloaded near-gas v0.3.0
  Downloaded near-gas v0.2.5
  Downloaded near-account-id v1.0.0
  Downloaded near-abi-client-macros v0.1.1
  Downloaded near-abi-client-impl v0.1.1
  Downloaded near-abi-client v0.1.1
  Downloaded linux-keyutils v0.2.4
  Downloaded xdg-home v1.3.0
  Downloaded waker-fn v1.2.0
  Downloaded urlencoding v2.1.3
  Downloaded tokio-retry v0.3.0
  Downloaded tokio-io-timeout v1.2.0
  Downloaded strum_macros v0.24.3
  Downloaded string_cache v0.8.7
  Downloaded smart-default v0.7.1
  Downloaded smart-default v0.6.0
  Downloaded shellexpand v3.1.0
  Downloaded json_comments v0.2.2
  Downloaded hmac v0.9.0
  Downloaded curve25519-dalek-derive v0.1.1
  Downloaded convert_case v0.5.0
  Downloaded brownstone v1.1.0
  Downloaded async-recursion v1.1.1
  Downloaded async-fs v1.6.0
  Downloaded async-broadcast v0.5.1
  Downloaded adler v1.0.2
  Downloaded actix-rt v2.10.0
  Downloaded actix-macros v0.2.4
  Downloaded smawk v0.3.2
  Downloaded slipped10 v0.4.6
  Downloaded ident_case v1.0.1
  Downloaded darling_macro v0.20.10
  Downloaded crunchy v0.2.2
  Downloaded constant_time_eq v0.1.5
  Downloaded block-buffer v0.9.0
  Downloaded atty v0.2.14
  Downloaded async-stream-impl v0.3.6
  Downloaded openssl-src v300.4.1+3.4.0
   Compiling libc v0.2.169
   Compiling serde v1.0.217
   Compiling syn v2.0.94
   Compiling version_check v0.9.5
   Compiling shlex v1.3.0
   Compiling once_cell v1.20.2
   Compiling jobserver v0.1.32
   Compiling generic-array v0.14.7
   Compiling smallvec v1.13.2
   Compiling cc v1.2.7
   Compiling futures-core v0.3.31
   Compiling pkg-config v0.3.31
   Compiling lock_api v0.4.12
   Compiling parking_lot_core v0.9.10
   Compiling scopeguard v1.2.0
   Compiling getrandom v0.2.15
   Compiling bytes v1.9.0
   Compiling parking_lot v0.12.3
   Compiling byteorder v1.5.0
   Compiling log v0.4.22
   Compiling signal-hook-registry v1.4.2
   Compiling hashbrown v0.15.2
   Compiling equivalent v1.0.1
   Compiling toml_datetime v0.6.8
   Compiling futures-sink v0.3.31
   Compiling socket2 v0.5.8
   Compiling mio v1.0.3
   Compiling synstructure v0.13.1
   Compiling indexmap v2.7.0
   Compiling tracing-core v0.1.33
   Compiling subtle v2.6.1
   Compiling rand_core v0.6.4
   Compiling futures-channel v0.3.31
   Compiling crypto-common v0.1.6
   Compiling num-traits v0.2.19
   Compiling anyhow v1.0.95
   Compiling block-buffer v0.10.4
   Compiling cfg_aliases v0.2.1
   Compiling syn v1.0.109
   Compiling fnv v1.0.7
   Compiling digest v0.10.7
   Compiling winnow v0.6.22
   Compiling zstd-sys v2.0.13+zstd.1.5.6
   Compiling crossbeam-utils v0.8.21
   Compiling serde_derive v1.0.217
   Compiling zerofrom-derive v0.1.5
   Compiling yoke-derive v0.7.5
   Compiling tokio-macros v2.5.0
   Compiling tracing-attributes v0.1.28
   Compiling tokio v1.43.0
   Compiling zerovec-derive v0.10.3
   Compiling tracing v0.1.41
   Compiling displaydoc v0.2.5
   Compiling futures-macro v0.3.31
   Compiling zerocopy-derive v0.7.35
   Compiling futures-util v0.3.31
   Compiling zerocopy v0.7.35
   Compiling toml_edit v0.22.22
   Compiling rustversion v1.0.19
   Compiling icu_provider_macros v1.5.0
   Compiling bitflags v2.6.0
   Compiling proc-macro-crate v3.2.0
   Compiling ppv-lite86 v0.2.20
   Compiling thiserror-impl v1.0.69
   Compiling borsh-derive v1.5.3
   Compiling lazy_static v1.5.0
   Compiling rand_chacha v0.3.1
   Compiling serde_json v1.0.134
   Compiling rand v0.8.5
   Compiling thiserror v1.0.69
   Compiling borsh v1.5.3
   Compiling stable_deref_trait v1.2.0
   Compiling tokio-util v0.7.13
   Compiling sha2 v0.10.8
   Compiling semver v1.0.24
   Compiling percent-encoding v2.3.1
   Compiling zerofrom v0.1.5
   Compiling bitflags v1.3.2
   Compiling yoke v0.7.5
   Compiling num-integer v0.1.46
   Compiling tower-service v0.3.3
   Compiling httparse v1.9.5
   Compiling memchr v2.7.4
   Compiling zerovec v0.10.4
   Compiling hex v0.4.3
   Compiling ring v0.17.8
   Compiling try-lock v0.2.5
   Compiling cfg-if v1.0.0
   Compiling want v0.3.1
   Compiling async-trait v0.1.85
   Compiling static_assertions v1.1.0
   Compiling typenum v1.17.0
   Compiling tinystr v0.7.6
   Compiling http v0.2.12
   Compiling thread_local v1.1.8
   Compiling writeable v0.5.5
   Compiling powerfmt v0.2.0
   Compiling litemap v0.7.4
   Compiling regex-syntax v0.6.29
   Compiling icu_locid v1.5.0
   Compiling deranged v0.3.11
   Compiling num_cpus v1.16.0
   Compiling regex-automata v0.1.10
   Compiling openssl-src v300.4.1+3.4.0
   Compiling overload v0.1.1
   Compiling time-core v0.1.2
   Compiling num-conv v0.1.0
   Compiling tower-layer v0.3.3
   Compiling vcpkg v0.2.15
   Compiling matchers v0.1.0
   Compiling openssl-sys v0.9.104
   Compiling time v0.3.37
   Compiling nu-ansi-term v0.46.0
   Compiling futures-executor v0.3.31
   Compiling icu_provider v1.5.0
   Compiling http-body v0.4.6
   Compiling aho-corasick v1.1.3
   Compiling rustc_version v0.4.1
   Compiling sharded-slab v0.1.7
   Compiling crossbeam-channel v0.5.14
   Compiling pin-project-internal v1.1.8
   Compiling serde_repr v0.1.19
   Compiling tracing-log v0.2.0
   Compiling bzip2-sys v0.1.11+1.0.8
   Compiling indexmap v1.9.3
   Compiling num-bigint v0.3.3
   Compiling zstd-safe v5.0.2+zstd.1.5.2
   Compiling regex-syntax v0.8.5
   Compiling icu_locid_transform_data v1.5.0
   Compiling base64 v0.21.7
   Compiling icu_locid_transform v1.5.0
   Compiling pin-project v1.1.8
   Compiling tracing-subscriber v0.3.19
   Compiling curve25519-dalek v4.1.3
   Compiling regex-automata v0.4.9
   Compiling h2 v0.3.26
   Compiling icu_collections v1.5.0
   Compiling near-account-id v1.0.0
   Compiling axum-core v0.3.4
   Compiling num-rational v0.3.2
   Compiling ident_case v1.0.1
   Compiling icu_properties_data v1.5.0
   Compiling httpdate v1.0.3
   Compiling crunchy v0.2.2
   Compiling mime v0.3.17
   Compiling either v1.13.0
   Compiling base64 v0.22.1
   Compiling convert_case v0.4.0
   Compiling hashbrown v0.12.3
   Compiling strsim v0.11.1
   Compiling darling_core v0.20.10
   Compiling derive_more v0.99.18
   Compiling itertools v0.12.1
   Compiling hyper v0.14.32
   Compiling icu_properties v1.5.1
   Compiling regex v1.11.1
   Compiling axum v0.6.20
   Compiling tokio-stream v0.1.17
   Compiling enum-map-derive v0.17.0
   Compiling curve25519-dalek-derive v0.1.1
   Compiling derive_arbitrary v1.4.1
   Compiling secp256k1-sys v0.8.1
   Compiling rustls-pki-types v1.10.1
   Compiling urlencoding v2.1.3
   Compiling heck v0.5.0
   Compiling write16 v1.0.0
   Compiling schemars v0.8.21
   Compiling bs58 v0.4.0
   Compiling rustls v0.23.20
   Compiling utf8_iter v1.0.4
   Compiling utf16_iter v1.0.5
   Compiling heck v0.4.1
   Compiling signature v2.2.0
   Compiling icu_normalizer_data v1.5.0
   Compiling icu_normalizer v1.5.0
   Compiling strum_macros v0.24.3
   Compiling ed25519 v2.2.3
   Compiling opentelemetry v0.22.0
   Compiling arbitrary v1.4.1
   Compiling enum-map v2.7.3
   Compiling prost-derive v0.12.6
   Compiling darling_macro v0.20.10
   Compiling tower v0.4.13
   Compiling concurrent-queue v2.5.0
   Compiling tokio-io-timeout v1.2.0
   Compiling async-stream-impl v0.3.6
   Compiling ordered-float v4.6.0
   Compiling serde_derive_internals v0.29.1
   Compiling block-padding v0.3.3
   Compiling openssl v0.10.68
   Compiling matchit v0.7.3
   Compiling sync_wrapper v0.1.2
   Compiling foreign-types-shared v0.1.1
   Compiling glob v0.3.2
   Compiling foreign-types v0.3.2
   Compiling schemars_derive v0.8.21
   Compiling opentelemetry_sdk v0.22.1
   Compiling inout v0.1.3
   Compiling prost v0.12.6
   Compiling async-stream v0.3.6
   Compiling hyper-timeout v0.4.1
   Compiling darling v0.20.10
   Compiling uint v0.9.5
   Compiling near-primitives-core v0.23.0
   Compiling ed25519-dalek v2.1.1
   Compiling strum v0.24.1
   Compiling idna_adapter v1.2.0
   Compiling fixed-hash v0.7.0
   Compiling form_urlencoded v1.2.1
   Compiling openssl-macros v0.1.1
   Compiling http v1.2.0
   Compiling protobuf v2.28.0
   Compiling rustix v0.38.42
   Compiling fastrand v2.3.0
   Compiling json_comments v0.2.2
   Compiling winnow v0.5.40
   Compiling near-config-utils v0.23.0
   Compiling primitive-types v0.10.1
   Compiling idna v1.0.3
   Compiling toml_edit v0.19.15
   Compiling tonic v0.11.0
   Compiling secp256k1 v0.27.0
   Compiling cipher v0.4.4
   Compiling actix-rt v2.10.0
   Compiling actix_derive v0.6.2
   Compiling actix-macros v0.2.4
   Compiling blake2 v0.10.6
   Compiling hmac v0.12.1
   Compiling proc-macro-error-attr v1.0.4
   Compiling adler2 v2.0.0
   Compiling ryu v1.0.18
   Compiling itoa v1.0.14
   Compiling near-stdx v0.23.0
   Compiling linux-raw-sys v0.4.14
   Compiling arrayvec v0.7.6
   Compiling prometheus v0.13.4
   Compiling zstd-safe v7.2.1
   Compiling clap_builder v4.5.23
   Compiling near-crypto v0.23.0
   Compiling miniz_oxide v0.8.2
   Compiling actix v0.13.5
   Compiling opentelemetry-proto v0.5.0
   Compiling proc-macro-crate v1.3.1
   Compiling url v2.5.4
   Compiling http-body v1.0.1
   Compiling event-listener v5.3.1
   Compiling clap_derive v4.5.18
   Compiling futures v0.3.31
   Compiling zvariant_utils v1.0.1
   Compiling sha1 v0.10.6
   Compiling proc-macro-error v1.0.4
   Compiling crc32fast v1.4.2
   Compiling cpufeatures v0.2.16
   Compiling native-tls v0.2.12
   Compiling unsafe-libyaml v0.2.11
   Compiling opentelemetry-semantic-conventions v0.14.0
   Compiling event-listener v2.5.3
   Compiling io-lifetimes v1.0.11
   Compiling reed-solomon-erasure v4.0.2
   Compiling chrono v0.4.39
   Compiling opentelemetry-otlp v0.15.0
   Compiling serde_yaml v0.9.34+deprecated
   Compiling flate2 v1.0.35
   Compiling clap v4.5.23
   Compiling event-listener-strategy v0.5.3
   Compiling aes v0.8.4
   Compiling h2 v0.4.7
   Compiling serde_with_macros v3.12.0
   Compiling tracing-opentelemetry v0.23.0
   Compiling tracing-appender v0.2.3
   Compiling near-time v0.23.0
   Compiling near-rpc-error-core v0.23.0
   Compiling enumflags2_derive v0.7.10
   Compiling dirs-sys-next v0.1.2
   Compiling futures-lite v2.5.0
   Compiling polling v2.8.0
   Compiling memoffset v0.7.1
   Compiling siphasher v0.3.11
   Compiling keccak v0.1.5
   Compiling unicode-width v0.1.14
   Compiling spin v0.9.8
   Compiling untrusted v0.9.0
   Compiling rustix v0.37.28
   Compiling openssl-probe v0.1.5
   Compiling fastrand v1.9.0
   Compiling waker-fn v1.2.0
   Compiling dyn-clone v1.0.17
   Compiling futures-lite v1.13.0
   Compiling itertools v0.10.5
   Compiling sha3 v0.10.8
   Compiling dirs-next v2.0.0
   Compiling enumflags2 v0.7.10
   Compiling near-rpc-error-macro v0.23.0
   Compiling hyper v1.5.2
   Compiling near-o11y v0.23.0
   Compiling serde_with v3.12.0
   Compiling zstd v0.13.2
   Compiling async-channel v2.3.1
   Compiling near-parameters v0.23.0
   Compiling async-lock v2.8.0
   Compiling zvariant_derive v3.15.2
   Compiling near-performance-metrics v0.23.0
   Compiling piper v0.2.4
   Compiling near-fmt v0.23.0
   Compiling bytesize v1.3.0
   Compiling smart-default v0.6.0
   Compiling near-async-derive v0.23.0
   Compiling filetime v0.2.25
   Compiling async-fs v1.6.0
   Compiling async-io v1.13.0
   Compiling proc-macro2 v1.0.92
   Compiling easy-ext v0.2.9
   Compiling signal-hook v0.3.17
   Compiling unicode-ident v1.0.14
   Compiling base64ct v1.6.0
   Compiling linux-raw-sys v0.3.8
   Compiling near-primitives v0.23.0
   Compiling password-hash v0.4.2
   Compiling near-async v0.23.0
   Compiling zvariant v3.15.2
   Compiling blocking v1.6.1
   Compiling interactive-clap-derive v0.2.10
   Compiling hyper-util v0.1.10
   Compiling rustls-webpki v0.102.8
   Compiling Inflector v0.11.4
   Compiling http-body-util v0.1.2
   Compiling num-bigint v0.4.6
   Compiling backtrace v0.3.71
   Compiling socket2 v0.4.10
   Compiling sync_wrapper v1.0.2
   Compiling ahash v0.8.11
   Compiling vte_generate_state_changes v0.1.2
   Compiling bitcoin-internals v0.2.0
   Compiling adler v1.0.2
   Compiling zeroize v1.8.1
   Compiling gimli v0.28.1
   Compiling eyre v0.6.12
   Compiling portable-atomic v1.10.0
   Compiling miniz_oxide v0.7.4
   Compiling addr2line v0.21.0
   Compiling vte v0.11.1
   Compiling tower v0.5.2
   Compiling num-rational v0.4.2
   Compiling pbkdf2 v0.11.0
   Compiling near-chain-configs v0.23.0
   Compiling nix v0.26.4
   Compiling zstd v0.11.2+zstd.1.5.2
   Compiling interactive-clap v0.2.10
   Compiling zbus_names v2.6.1
   Compiling bzip2 v0.4.4
   Compiling xattr v1.4.0
   Compiling quote v1.0.38
   Compiling async-executor v1.13.1
   Compiling webpki-roots v0.26.7
   Compiling async-broadcast v0.5.1
   Compiling zbus_macros v3.15.2
   Compiling serde_urlencoded v0.7.1
   Compiling rustls-pemfile v2.2.0
   Compiling tracing-error v0.2.1
   Compiling num-iter v0.1.45
   Compiling derivative v2.2.0
   Compiling async-recursion v1.1.1
   Compiling num-complex v0.4.6
   Compiling mio v0.8.11
   Compiling digest v0.9.0
   Compiling xdg-home v1.3.0
   Compiling ordered-stream v0.2.0
   Compiling object v0.32.2
   Compiling rustc-demangle v0.1.24
   Compiling unicode-width v0.2.0
   Compiling radium v0.7.0
   Compiling indenter v0.3.3
   Compiling uuid v0.8.2
   Compiling option-ext v0.2.0
   Compiling tinyvec_macros v0.1.1
   Compiling owo-colors v3.5.0
   Compiling constant_time_eq v0.1.5
   Compiling ipnet v2.10.1
   Compiling zip v0.6.6
   Compiling ureq v2.12.1
   Compiling color-spantrace v0.2.1
   Compiling tinyvec v1.8.1
   Compiling dirs-sys v0.4.1
   Compiling console v0.15.10
   Compiling zbus v3.15.2
   Compiling signal-hook-mio v0.2.4
   Compiling num v0.4.3
   Compiling tar v0.4.43
   Compiling near-jsonrpc-primitives v0.23.0
   Compiling vt100 v0.15.2
   Compiling near-abi v0.4.3
   Compiling uriparse v0.6.4
   Compiling phf_shared v0.10.0
   Compiling near_schemafy_core v0.7.0
   Compiling hkdf v0.12.4
   Compiling cbc v0.1.2
   Compiling serde_spanned v0.6.8
   Compiling scroll_derive v0.11.1
   Compiling crypto-mac v0.9.1
   Compiling block-buffer v0.9.0
   Compiling is-docker v0.2.0
   Compiling fs2 v0.4.3
   Compiling csv-core v0.1.11
   Compiling minimal-lexical v0.2.1
   Compiling precomputed-hash v0.1.1
   Compiling iana-time-zone v0.1.61
   Compiling is_executable v0.1.2
   Compiling near-sandbox-utils v0.8.0
   Compiling camino v1.1.9
   Compiling rust_decimal v1.36.0
   Compiling opaque-debug v0.3.1
   Compiling fallible-iterator v0.2.0
   Compiling number_prefix v0.4.0
   Compiling unicode-segmentation v1.12.0
   Compiling same-file v1.0.6
   Compiling hex-conservative v0.1.2
   Compiling tap v1.0.1
   Compiling pin-project-lite v0.2.15
   Compiling hex v0.3.2
   Compiling new_debug_unreachable v1.0.6
   Compiling string_cache v0.8.7
   Compiling binary-install v0.2.0
   Compiling wyz v0.5.1
   Compiling bitcoin_hashes v0.13.0
   Compiling newline-converter v0.3.0
   Compiling walkdir v2.5.0
   Compiling indicatif v0.17.9
   Compiling sha2 v0.9.9
   Compiling nom v7.1.3
   Compiling csv v1.3.1
   Compiling scroll v0.11.0
   Compiling is-wsl v0.4.0
   Compiling hmac v0.9.0
   Compiling secret-service v3.1.0
   Compiling near_schemafy_lib v0.7.0
   Compiling hashbrown v0.14.5
   Compiling crossterm v0.25.0
   Compiling color-eyre v0.6.3
   Compiling dirs v5.0.1
   Compiling unicode-normalization v0.1.22
   Compiling debugid v0.7.3
   Compiling near-token v0.2.1
   Compiling term v0.7.0
   Compiling tempfile v3.15.0
   Compiling brownstone v1.1.0
   Compiling fuzzy-matcher v0.3.7
   Compiling linux-keyutils v0.2.4
   Compiling fxhash v0.2.1
   Compiling is-terminal v0.4.13
   Compiling memmap2 v0.5.10
   Compiling bs58 v0.5.1
   Compiling funty v2.0.0
   Compiling joinery v2.1.0
   Compiling pathdiff v0.2.3
   Compiling shell-escape v0.1.5
   Compiling names v0.14.0
   Compiling prettyplease v0.1.25
   Compiling encode_unicode v1.0.0
   Compiling scroll v0.10.2
   Compiling plain v0.2.3
   Compiling smawk v0.3.2
   Compiling xml-rs v0.8.25
   Compiling indent_write v2.2.0
   Compiling unicode-linebreak v0.1.5
   Compiling home v0.5.11
   Compiling textwrap v0.16.1
   Compiling nom-supreme v0.6.0
   Compiling elementtree v0.7.0
   Compiling prettytable v0.10.0
   Compiling pdb v0.7.0
   Compiling goblin v0.5.4
   Compiling bitvec v1.0.1
   Compiling open v5.3.2
   Compiling symbolic-common v8.8.0
   Compiling inquire v0.7.5
   Compiling keyring v2.3.3
   Compiling bip39 v2.1.0
   Compiling shellexpand v3.1.0
   Compiling near-abi-client-impl v0.1.1
   Compiling wasmparser v0.211.1
   Compiling slipped10 v0.4.6
   Compiling toml v0.8.19
   Compiling tracing-indicatif v0.3.8
   Compiling gimli v0.26.2
   Compiling near-gas v0.2.5
   Compiling zip v0.5.13
   Compiling env_filter v0.1.3
   Compiling linked-hash-map v0.5.6
   Compiling cargo-platform v0.1.9
   Compiling smart-default v0.7.1
   Compiling shell-words v1.1.0
   Compiling wasmparser v0.83.0
   Compiling dmsort v1.0.2
   Compiling easy-ext v1.0.2
   Compiling near-sdk-macros v5.7.0
   Compiling near-sandbox-utils v0.9.0
   Compiling lazycell v1.3.0
   Compiling humantime v2.1.0
   Compiling env_logger v0.11.6
   Compiling symbolic-debuginfo v8.8.0
   Compiling cargo_metadata v0.18.1
   Compiling near-abi-client-macros v0.1.1
   Compiling near-workspaces v0.11.1
   Compiling strum_macros v0.26.4
   Compiling jsonptr v0.4.7
   Compiling colored v2.2.0
   Compiling atty v0.2.14
   Compiling libloading v0.8.6
   Compiling near-sandbox-utils v0.13.0
   Compiling strum v0.26.3
   Compiling convert_case v0.5.0
   Compiling dunce v1.0.5
   Compiling json-patch v2.0.0
   Compiling near-abi-client v0.1.1
   Compiling tokio-retry v0.3.0
   Compiling near-gas v0.3.0
   Compiling near-token v0.3.0
   Compiling uuid v1.11.0
   Compiling near-sys v0.2.2
   Compiling near-sdk v5.7.0
   Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust)
warning: creating a shared reference to mutable static is discouraged
   --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:146:16
    |
146 |             if POOL.is_none() {
    |                ^^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
    = note: `#[warn(static_mut_refs)]` on by default

warning: creating a shared reference to mutable static is discouraged
   --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:151:13
    |
151 |             POOL.as_ref().unwrap()
    |             ^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
   --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:170:16
    |
170 |             if LOCKS.is_none() {
    |                ^^^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
   --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:174:13
    |
174 |             LOCKS.as_ref().unwrap()
    |             ^^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: `fable_library_rust` (lib) generated 4 warnings
   Compiling crypto-hash v0.3.4
   Compiling cargo-util v0.1.2
   Compiling tokio-native-tls v0.3.1
   Compiling hyper-tls v0.6.0
   Compiling reqwest v0.12.12
   Compiling near-jsonrpc-client v0.10.1
   Compiling near-socialdb-client v0.3.2
   Compiling near-cli-rs v0.11.1
   Compiling cargo-near v0.6.4
   Compiling spiral_wasm v0.0.1 (/home/runner/work/polyglot/spiral/apps/wasm)
    Finished `release` profile [optimized] target(s) in 4m 38s
In [ ]:
{ pwsh ../lib/math/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path math.dib --retries 5"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path math.dib --retries 5; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "math.dib", "--retries", "5"])) }
00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/math/math.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/math/math.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:02 v #10 > >
00:00:02 v #11 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #12 > > │ # math
00:00:05 v #13 > >
00:00:05 v #14 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:05 v #15 > > open testing
00:00:05 v #16 > > open rust.rust_operators
00:00:05 v #17 > > open rust
00:00:08 v #18 > >
00:00:08 v #19 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 v #20 > > │ ## complex
00:00:08 v #21 > >
00:00:08 v #22 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 v #23 > > nominal complex t =
00:00:08 v #24 > >     `(
00:00:08 v #25 > >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase;
00:00:08 v #26 > > Fable.Core.Emit(\"num_complex::Complex<$0>\")>]]\n#endif\ntype
00:00:08 v #27 > > num_complex_Complex<'T> = class end"
00:00:08 v #28 > >         $'' : $'num_complex_Complex<`t>'
00:00:08 v #29 > >     )
00:00:08 v #30 > >
00:00:08 v #31 > > inl complex forall t. ((re : t), (im : t)) : complex t =
00:00:08 v #32 > >     !\\((re, im), $'"num_complex::Complex::new($0, $1)"')
00:00:08 v #33 > >
00:00:08 v #34 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 v #35 > > //// test
00:00:08 v #36 > > ///! rust -d num-complex
00:00:08 v #37 > >
00:00:08 v #38 > > complex (0f64, 0f64)
00:00:08 v #39 > > |> sm'.format'
00:00:08 v #40 > > |> sm'.from_std_string
00:00:08 v #41 > > |> _assert_eq "0+0i"
00:00:21 v #42 > >
00:00:21 v #43 > > ── [ 12.57s - return value ] ───────────────────────────────────────────────────
00:00:21 v #44 > > │ __assert_eq / actual: "0+0i" / expected: "0+0i"
00:00:21 v #45 > > │
00:00:21 v #46 > >
00:00:21 v #47 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 v #48 > > │ ## re
00:00:21 v #49 > >
00:00:21 v #50 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 v #51 > > inl re forall t. (c : complex t) : t =
00:00:21 v #52 > >     !\\(c, $'"$0.re"')
00:00:21 v #53 > >
00:00:21 v #54 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 v #55 > > │ ## im
00:00:21 v #56 > >
00:00:21 v #57 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 v #58 > > inl im forall t. (c : complex t) : t =
00:00:21 v #59 > >     !\\(c, $'"$0.im"')
00:00:21 v #60 > >
00:00:21 v #61 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 v #62 > > │ ## complex_unbox
00:00:21 v #63 > >
00:00:21 v #64 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 v #65 > > inl complex_unbox forall t. (c : complex t) =
00:00:21 v #66 > >     re c, im c
00:00:22 v #67 > >
00:00:22 v #68 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 v #69 > > │ ## (~.^)
00:00:22 v #70 > >
00:00:22 v #71 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 v #72 > > inl (~.^) c = complex c
00:00:22 v #73 > >
00:00:22 v #74 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 v #75 > > │ ## complex_eq
00:00:22 v #76 > >
00:00:22 v #77 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 v #78 > > inl complex_eq forall t. (a : complex t) (b : complex t) : bool =
00:00:22 v #79 > >     !\\((a, b), $'"$0 == $1"')
00:00:22 v #80 > >
00:00:22 v #81 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 v #82 > > │ ## (.=)
00:00:22 v #83 > >
00:00:22 v #84 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 v #85 > > inl (.=) a b = complex_eq a b
00:00:22 v #86 > >
00:00:22 v #87 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 v #88 > > │ ## equable complex
00:00:22 v #89 > >
00:00:22 v #90 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 v #91 > > instance equable complex t = complex_eq
00:00:22 v #92 > >
00:00:22 v #93 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 v #94 > > │ ## complex_add
00:00:22 v #95 > >
00:00:22 v #96 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 v #97 > > inl complex_add forall t. (a : complex t) (b : complex t) : complex t =
00:00:22 v #98 > >     !\\((a, b), $'"$0 + $1"')
00:00:23 v #99 > >
00:00:23 v #100 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #101 > > │ ## (.+)
00:00:23 v #102 > >
00:00:23 v #103 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 v #104 > > inl (.+) a b = complex_add a b
00:00:23 v #105 > >
00:00:23 v #106 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #107 > > │ ## complex_sub
00:00:23 v #108 > >
00:00:23 v #109 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 v #110 > > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t =
00:00:23 v #111 > >     !\\((a, b), $'"$0 - $1"')
00:00:23 v #112 > >
00:00:23 v #113 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #114 > > │ ## (.-)
00:00:23 v #115 > >
00:00:23 v #116 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 v #117 > > inl (.-) a b = complex_sub a b
00:00:23 v #118 > >
00:00:23 v #119 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #120 > > │ ## complex_mult
00:00:23 v #121 > >
00:00:23 v #122 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 v #123 > > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t =
00:00:23 v #124 > >     !\\((a, b), $'"$0 * $1"')
00:00:23 v #125 > >
00:00:23 v #126 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #127 > > │ ## (.*)
00:00:23 v #128 > >
00:00:23 v #129 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 v #130 > > inl (.*) a b = complex_mult a b
00:00:23 v #131 > >
00:00:23 v #132 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #133 > > │ ## complex_div
00:00:23 v #134 > >
00:00:23 v #135 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 v #136 > > inl complex_div forall t. (a : complex t) (b : complex t) : complex t =
00:00:23 v #137 > >     !\\((a, b), $'"$0 / $1"')
00:00:24 v #138 > >
00:00:24 v #139 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:24 v #140 > > │ ## (./)
00:00:24 v #141 > >
00:00:24 v #142 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 v #143 > > inl (./) a b = complex_div a b
00:00:24 v #144 > >
00:00:24 v #145 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:24 v #146 > > │ ## powc
00:00:24 v #147 > >
00:00:24 v #148 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 v #149 > > inl powc forall t. (s : complex t) (c : complex t) : complex t =
00:00:24 v #150 > >     !\\((c, s), $'"num_complex::Complex::powc($0, $1)"')
00:00:24 v #151 > >
00:00:24 v #152 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:24 v #153 > > │ ## (.**)
00:00:24 v #154 > >
00:00:24 v #155 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 v #156 > > inl (.**) a b = powc b a
00:00:24 v #157 > >
00:00:24 v #158 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:24 v #159 > > │ ## complex_sin
00:00:24 v #160 > >
00:00:24 v #161 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 v #162 > > inl complex_sin forall t. (c : complex t) : complex t =
00:00:24 v #163 > >     !\\(c, $'"$0.sin()"')
00:00:24 v #164 > >
00:00:24 v #165 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:24 v #166 > > │ ## conj
00:00:24 v #167 > >
00:00:24 v #168 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 v #169 > > inl conj forall t. (c : complex t) : complex t =
00:00:24 v #170 > >     !\\(c, $'"$0.conj()"')
00:00:24 v #171 > >
00:00:24 v #172 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:24 v #173 > > │ ## zeta
00:00:24 v #174 > >
00:00:24 v #175 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 v #176 > > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex
00:00:24 v #177 > > f64 =
00:00:24 v #178 > >     inl rec zeta count gamma s =
00:00:24 v #179 > >         if log then
00:00:24 v #180 > >             !\\((count, s), $'"println\!(\\\"zeta / count: {:?} / s: {:?}\\\",
00:00:24 v #181 > > $0, $1)"')
00:00:24 v #182 > >         if re s > 1 then
00:00:24 v #183 > >             (.^(0, 0), (am.init 10000i32 id : a i32 _))
00:00:24 v #184 > >             ||> am.fold fun acc n =>
00:00:24 v #185 > >                 acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s))
00:00:24 v #186 > >         else
00:00:24 v #187 > >             inl gamma_term = gamma (.^(1, 0) .- s)
00:00:24 v #188 > >             inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin
00:00:24 v #189 > >             inl one_minus_s = .^(1 - re s, -(im s))
00:00:24 v #190 > >             inl mirror_term =
00:00:24 v #191 > >                 if re one_minus_s <= 1
00:00:24 v #192 > >                 then .^(0, 0)
00:00:24 v #193 > >                 else
00:00:24 v #194 > >                     if count <= 3
00:00:24 v #195 > >                     then zeta (count + 1) gamma one_minus_s
00:00:24 v #196 > >                     else one_minus_s
00:00:24 v #197 > >             inl reflection_formula =
00:00:24 v #198 > >                 .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .*
00:00:24 v #199 > > mirror_term
00:00:24 v #200 > >             reflection_formula
00:00:24 v #201 > >     join zeta 0i32 gamma s
00:00:25 v #202 > >
00:00:25 v #203 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 v #204 > > │ ## bound
00:00:25 v #205 > >
00:00:25 v #206 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 v #207 > > nominal bound t =
00:00:25 v #208 > >     `(
00:00:25 v #209 > >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase;
00:00:25 v #210 > > Fable.Core.Emit(\"pyo3::Bound<$0>\")>]]\n#endif\ntype pyo3_Bound<'T> = class
00:00:25 v #211 > > end"
00:00:25 v #212 > >         $'' : $'pyo3_Bound<`t>'
00:00:25 v #213 > >     )
00:00:25 v #214 > >
00:00:25 v #215 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 v #216 > > │ ## python
00:00:25 v #217 > >
00:00:25 v #218 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 v #219 > > nominal python =
00:00:25 v #220 > >     `(
00:00:25 v #221 > >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase;
00:00:25 v #222 > > Fable.Core.Emit(\"pyo3::Python\")>]]\n#endif\ntype pyo3_Python = class end"
00:00:25 v #223 > >         $'' : $'pyo3_Python'
00:00:25 v #224 > >     )
00:00:25 v #225 > >
00:00:25 v #226 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 v #227 > > │ ## pymodule
00:00:25 v #228 > >
00:00:25 v #229 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 v #230 > > nominal pymodule =
00:00:25 v #231 > >     `(
00:00:25 v #232 > >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase;
00:00:25 v #233 > > Fable.Core.Emit(\"pyo3::types::PyModule\")>]]\n#endif\ntype pyo3_types_PyModule
00:00:25 v #234 > > = class end"
00:00:25 v #235 > >         $'' : $'pyo3_types_PyModule'
00:00:25 v #236 > >     )
00:00:25 v #237 > >
00:00:25 v #238 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 v #239 > > │ ## pyany
00:00:25 v #240 > >
00:00:25 v #241 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 v #242 > > nominal pyany =
00:00:25 v #243 > >     `(
00:00:25 v #244 > >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase;
00:00:25 v #245 > > Fable.Core.Emit(\"pyo3::PyAny\")>]]\n#endif\ntype pyo3_PyAny = class end"
00:00:25 v #246 > >         $'' : $'pyo3_PyAny'
00:00:25 v #247 > >     )
00:00:25 v #248 > >
00:00:25 v #249 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 v #250 > > │ ## pyerr
00:00:25 v #251 > >
00:00:25 v #252 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 v #253 > > nominal pyerr =
00:00:25 v #254 > >     `(
00:00:25 v #255 > >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase;
00:00:25 v #256 > > Fable.Core.Emit(\"pyo3::PyErr\")>]]\n#endif\ntype pyo3_PyErr = class end"
00:00:25 v #257 > >         $'' : $'pyo3_PyErr'
00:00:25 v #258 > >     )
00:00:25 v #259 > >
00:00:25 v #260 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 v #261 > > │ ## eval
00:00:25 v #262 > >
00:00:25 v #263 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 v #264 > > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =
00:00:25 v #265 > >     inl py = join py
00:00:25 v #266 > >     inl code = code |> sm'.to_std_string |> sm'.new_c_string
00:00:25 v #267 > >     inl empty = "" |> sm'.to_std_string |> sm'.new_c_string
00:00:25 v #268 > >     !\\(code, $'"pyo3::types::PyModule::from_code(!py, &$0, &!empty, &!empty)"')
00:00:25 v #269 > >     |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format'
00:00:25 v #270 > >
00:00:25 v #271 > > inl use_pyanymethods () =
00:00:25 v #272 > >     global "Fable.Core.RustInterop.emitRustExpr () \");\nuse
00:00:25 v #273 > > pyo3::prelude::PyAnyMethods;\n//\""
00:00:25 v #274 > >
00:00:25 v #275 > > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =
00:00:25 v #276 > >     inl attr = join attr
00:00:25 v #277 > >     inl attr = attr |> sm'.as_str
00:00:25 v #278 > >     inl module = join module
00:00:25 v #279 > >     use_pyanymethods ()
00:00:25 v #280 > >     !\\(attr, $'"!module.getattr($0)"')
00:00:25 v #281 > >     |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format'
00:00:25 v #282 > >
00:00:25 v #283 > > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =
00:00:25 v #284 > >     inl args = join args
00:00:25 v #285 > >     inl module = join module
00:00:25 v #286 > >     !\($'"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1),
00:00:25 v #287 > > None)"')
00:00:25 v #288 > >     |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format'
00:00:25 v #289 > >
00:00:25 v #290 > > inl extract forall t. (result : bound pyany) : _ t _ =
00:00:25 v #291 > >     inl result = join result
00:00:25 v #292 > >     use_pyanymethods ()
00:00:25 v #293 > >     !\($'"!result.extract()"')
00:00:25 v #294 > >     |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format'
00:00:25 v #295 > >
00:00:25 v #296 > > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string =
00:00:25 v #297 > >     inl code =
00:00:25 v #298 > >         code
00:00:25 v #299 > >         |> module_from_code py
00:00:25 v #300 > >         |> resultm.unwrap'
00:00:25 v #301 > >     inl fn =
00:00:25 v #302 > >         code
00:00:25 v #303 > >         |> getattr "fn"
00:00:25 v #304 > >         |> resultm.unwrap'
00:00:25 v #305 > >
00:00:25 v #306 > >     fn
00:00:25 v #307 > >     |> call args
00:00:25 v #308 > >     |> resultm.try'
00:00:25 v #309 > >     |> extract
00:00:25 v #310 > >     |> resultm.try'
00:00:25 v #311 > >     |> complex
00:00:25 v #312 > >     |> Ok
00:00:25 v #313 > >     |> resultm.box
00:00:25 v #314 > >
00:00:25 v #315 > > inl call1_ log py s code =
00:00:25 v #316 > >     inl code = join (a code : _ i32 _) |> sm'.concat_array "\n"
00:00:25 v #317 > >
00:00:25 v #318 > >     inl s = new_pair (re s) (im s)
00:00:25 v #319 > >     inl args = new_pair log s
00:00:25 v #320 > >
00:00:25 v #321 > >     eval py code args
00:00:25 v #322 > >
00:00:25 v #323 > > inl call1_ log name py s line =
00:00:25 v #324 > >     inl s = join s
00:00:25 v #325 > >     join
00:00:25 v #326 > >         ;[[
00:00:25 v #327 > >             $'$"import sys"'
00:00:25 v #328 > >             $'$"import traceback"'
00:00:25 v #329 > >             $'$"import re"'
00:00:25 v #330 > >             $'$"count = 0"'
00:00:25 v #331 > >             $'$"memory_address_pattern = re.compile(r\' at 0x[[0-9a-fA-F]]+\')"'
00:00:25 v #332 > >             $'$"def trace_calls(frame, event, arg):"'
00:00:25 v #333 > >             $'$"    global count"'
00:00:25 v #334 > >             $'$"    count += 1"'
00:00:25 v #335 > >             $'$"    if count < 200:"'
00:00:25 v #336 > >             $'$"        try:"'
00:00:25 v #337 > >             $'$"            args = {{ k: v for k, v in frame.f_locals.items() if
00:00:25 v #338 > > frame.f_code.co_name \!= \'make_mpc\' and k not in [[\'ctx\']] and not
00:00:25 v #339 > > callable(v) }}"'
00:00:25 v #340 > >             $'$"            args_str = \', \'.join([[
00:00:25 v #341 > > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', repr(v))}}\\\" for k,
00:00:25 v #342 > > v in args.items() ]])"'
00:00:25 v #343 > >             $'$"            print(f\\\"{{event}}({!name}) / f_code.co_name:
00:00:25 v #344 > > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}}
00:00:25 v #345 > > / f_code.co_filename:
00:00:25 v #346 > > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}} / f_back.f_lineno:
00:00:25 v #347 > > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno }}
00:00:25 v #348 > > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None else
00:00:25 v #349 > > frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg:
00:00:25 v #350 > > {{re.sub(memory_address_pattern, \' at 0x<?>\', repr(arg))}}\\\", flush=True)"'
00:00:25 v #351 > >             $'$"        except ValueError as e:"'
00:00:25 v #352 > >             $'$"            print(f\'{!name} / e: {{e}}\', flush=True)"'
00:00:25 v #353 > >             $'$"        return trace_calls"'
00:00:25 v #354 > >             $'$"import mpmath"'
00:00:25 v #355 > >             $'$"def fn(log, s):"'
00:00:25 v #356 > >             $'$"    global count"'
00:00:25 v #357 > >             $'$"    if log:"'
00:00:25 v #358 > >             $'$"        print(f\'{!name} / s: {{s}} / count: {{count}}\',
00:00:25 v #359 > > flush=True)"'
00:00:25 v #360 > >             $'$"    s = complex(*s)"'
00:00:25 v #361 > >             $'$"    try:"'
00:00:25 v #362 > >             $'$"        if log: sys.settrace(trace_calls)"'
00:00:25 v #363 > >             line
00:00:25 v #364 > >             $'$"        if log:"'
00:00:25 v #365 > >             $'$"            sys.settrace(None)"'
00:00:25 v #366 > >             $'$"            print(f\'{!name} / result: {{s}} / count:
00:00:25 v #367 > > {{count}}\', flush=True)"'
00:00:25 v #368 > >             $'$"    except ValueError as e:"'
00:00:25 v #369 > >             $'$"        if s.real == 1:"'
00:00:25 v #370 > >             $'$"            s = complex(float(\'inf\'), 0)"'
00:00:25 v #371 > >             $'$"    return (s.real, s.imag)"'
00:00:25 v #372 > >         ]]
00:00:25 v #373 > >         |> call1_ log py s
00:00:25 v #374 > >
00:00:25 v #375 > > inl gamma_ log py s =
00:00:25 v #376 > >     call1_ log "gamma_" py s $'$"        s = mpmath.gamma(s)"'
00:00:25 v #377 > >
00:00:25 v #378 > > inl zeta_ log py s =
00:00:25 v #379 > >     call1_ log "zeta_" py s $'$"        s = mpmath.zeta(s)"'
00:00:26 v #380 > >
00:00:26 v #381 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 v #382 > > │ ## run_test
00:00:26 v #383 > >
00:00:26 v #384 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 v #385 > > inl run_test log (fn : (complex f64 -> complex f64) * (complex f64 -> complex
00:00:26 v #386 > > f64) -> ()) =
00:00:26 v #387 > >     inl fn_ (py : python) : resultm.result' () pyerr =
00:00:26 v #388 > >         inl nan () =
00:00:26 v #389 > >             !\($'"f64::NAN"')
00:00:26 v #390 > >         inl gamma__ = fun (s : complex f64) =>
00:00:26 v #391 > >             inl result = gamma_ log py s
00:00:26 v #392 > >             if log then
00:00:26 v #393 > >                 inl s = join s
00:00:26 v #394 > >                 !\($'"println\!(\\\"gamma__ / s: {:?} / result: {:?}\\\", !s,
00:00:26 v #395 > > !result)"')
00:00:26 v #396 > >             result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value
00:00:26 v #397 > > .^(nan (), nan ())
00:00:26 v #398 > >         inl zeta__ = fun (s : complex f64) =>
00:00:26 v #399 > >             inl result = zeta_ log py s
00:00:26 v #400 > >
00:00:26 v #401 > >             inl z = zeta true gamma__ s
00:00:26 v #402 > >
00:00:26 v #403 > >             if log then
00:00:26 v #404 > >                 inl s = join s
00:00:26 v #405 > >                 !\($'"println\!(\\\"zeta__ / s: {:?} / result: {:?} / z:
00:00:26 v #406 > > {:?}\\\", !s, !result, !z)"')
00:00:26 v #407 > >
00:00:26 v #408 > >     //             re result - re x |> abs
00:00:26 v #409 > >     //             |> _assert_lt 0.001
00:00:26 v #410 > >
00:00:26 v #411 > >     //             im result - im x |> abs
00:00:26 v #412 > >     //             |> _assert_lt 0.001
00:00:26 v #413 > >
00:00:26 v #414 > >             result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value
00:00:26 v #415 > > .^(nan (), nan ())
00:00:26 v #416 > >         join fn (zeta__, gamma__)
00:00:26 v #417 > >
00:00:26 v #418 > >         Ok ()
00:00:26 v #419 > >         |> resultm.box
00:00:26 v #420 > >
00:00:26 v #421 > >     join
00:00:26 v #422 > >         !\($'"pyo3::prepare_freethreaded_python()"') : ()
00:00:26 v #423 > >
00:00:26 v #424 > >         !\($'"let __run_test = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()>
00:00:26 v #425 > > { //"')
00:00:26 v #426 > >
00:00:26 v #427 > >         let x' = fn_ (!\($'"py"') : python)
00:00:26 v #428 > >         inl x' = join x'
00:00:26 v #429 > >
00:00:26 v #430 > >         inl closure_fix = 2u8, 1u8
00:00:26 v #431 > >         x' |> rust.fix_closure closure_fix
00:00:26 v #432 > >
00:00:26 v #433 > >         (!\($'"__run_test"') : _ () pyerr)
00:00:26 v #434 > >         |> resultm.unwrap'
00:00:26 v #435 > >
00:00:26 v #436 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 v #437 > > │ ## test_zeta_at_known_values_
00:00:26 v #438 > >
00:00:26 v #439 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 v #440 > > inl test_zeta_at_known_values_ log = run_test log fun zeta, gamma =>
00:00:26 v #441 > >     ;[[
00:00:26 v #442 > >         .^(2, 0), pi ** 2 / 6
00:00:26 v #443 > >         .^(-1, 0), -1 / 12
00:00:26 v #444 > >     ]]
00:00:26 v #445 > >     |> fun x => a x : _ i32 _
00:00:26 v #446 > >     |> am.iter fun s, e =>
00:00:26 v #447 > >         inl result = zeta s
00:00:26 v #448 > >
00:00:26 v #449 > >         result |> im |> _assert_eq 0
00:00:26 v #450 > >         re result - e |> abs |> _assert_lt 0.0001
00:00:26 v #451 > >
00:00:26 v #452 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 v #453 > > //// test
00:00:26 v #454 > > ///! rust -d num-complex pyo3
00:00:26 v #455 > >
00:00:26 v #456 > > test_zeta_at_known_values_ true
00:00:42 v #457 > >
00:00:42 v #458 > > ── [ 16.54s - return value ] ───────────────────────────────────────────────────
00:00:42 v #459 > > │ zeta_ / s: (2.0, 0.0) / count: 0
00:00:42 v #460 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:00:42 v #461 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:00:42 v #462 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:42 v #463 > > arg: None
00:00:42 v #464 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:00:42 v #465 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:00:42 v #466 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:42 v #467 > > arg: None
00:00:42 v #468 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:00:42 v #469 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:
00:00:42 v #470 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:42 v #471 > > arg: None
00:00:42 v #472 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:00:42 v #473 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:
00:00:42 v #474 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:42 v #475 > > arg: None
00:00:42 v #476 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:00:42 v #477 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:
00:00:42 v #478 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:42 v #479 > > arg: None
00:00:42 v #480 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),
00:00:42 v #481 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:00:42 v #482 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:00:42 v #483 > > /mpmath/functions/zeta.py / arg: None
00:00:42 v #484 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),
00:00:42 v #485 > > kwargs={}, name='zeta' / f_linen...me: make_mpc / f_locals:  / f_lineno: 603
00:00:42 v #486 > > f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 1007
00:00:42 v #487 > > f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None
00:00:42 v #488 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals:
00:00:42 v #489 > > f_lineno: 604 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:42 v #490 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None
00:00:42 v #491 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals:
00:00:42 v #492 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:42 v #493 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None
00:00:42 v #494 > > │ return(gamma_) / f_code.co_name: make_mpc / f_locals:
00:00:42 v #495 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:42 v #496 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg:
00:00:42 v #497 > > mpc(real='1.0', imag='0.0')
00:00:42 v #498 > > │ return(gamma_) / f_code.co_name: f / f_locals:
00:00:42 v #499 > > x=mpc(real='2.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n'
00:00:42 v #500 > > f_lineno: 1007 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:42 v #501 > > 25 / f_back.f_code.co_filename:  / arg: mpc(real='1.0', imag='0.0')
00:00:42 v #502 > > │ gamma_ / result: (1.0 + 0.0j) / count: 140
00:00:42 v #503 > > │ gamma__ / s: Complex { re: 2.0, im: 0.0 } / result:
00:00:42 v #504 > > Ok(Complex { re: 1.0, im: 0.0 })
00:00:42 v #505 > > │ zeta / count: 1 / s: Complex { re: 2.0, im: -0.0 }
00:00:42 v #506 > > │ zeta__ / s: Complex { re: -1.0, im: 0.0 } / result:
00:00:42 v #507 > > Ok(Complex { re: -0.08333333333333333, im: 0.0 }) / z: Complex { re: NaN, im:
00:00:42 v #508 > > NaN }
00:00:42 v #509 > > │ __assert_eq / actual: 0.0 / expected: 0.0
00:00:42 v #510 > > │ __assert_lt / actual: 0.0 / expected: 0.0001
00:00:42 v #511 > > │
00:00:42 v #512 > >
00:00:42 v #513 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:42 v #514 > > │ ## test_zeta_at_2_minus2
00:00:42 v #515 > >
00:00:42 v #516 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:42 v #517 > > inl test_zeta_at_2_minus2 log = run_test log fun zeta, gamma =>
00:00:42 v #518 > >     inl s = .^(2, -2)
00:00:42 v #519 > >     inl result = zeta s
00:00:42 v #520 > >
00:00:42 v #521 > >     (re result - 0.8673) |> abs |> _assert_lt 0.001
00:00:42 v #522 > >     (im result - 0.2750) |> abs |> _assert_lt 0.001
00:00:43 v #523 > >
00:00:43 v #524 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:43 v #525 > > //// test
00:00:43 v #526 > > ///! rust -d num-complex pyo3
00:00:43 v #527 > >
00:00:43 v #528 > > test_zeta_at_2_minus2 true
00:00:50 v #529 > >
00:00:50 v #530 > > ── [ 7.17s - return value ] ────────────────────────────────────────────────────
00:00:50 v #531 > > │ zeta_ / s: (2.0, -2.0) / count: 0
00:00:50 v #532 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,
00:00:50 v #533 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:00:50 v #534 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:50 v #535 > > arg: None
00:00:50 v #536 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,
00:00:50 v #537 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:00:50 v #538 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:50 v #539 > > arg: None
00:00:50 v #540 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,
00:00:50 v #541 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:
00:00:50 v #542 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:50 v #543 > > arg: None
00:00:50 v #544 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,
00:00:50 v #545 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:
00:00:50 v #546 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:50 v #547 > > arg: None
00:00:50 v #548 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,
00:00:50 v #549 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:
00:00:50 v #550 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:50 v #551 > > arg: None
00:00:50 v #552 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2-2j),
00:00:50 v #553 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:00:50 v #554 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:00:50 v #555 > > /mpmath/functions/zeta.py / arg: None
00:00:50 v #556 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2-2j),
00:00:50 v #557 > > kwargs={}, name='zeta' / f_line.../ arg: None
00:00:50 v #558 > > │ call(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2
00:00:50 v #559 > > / f_lineno: 91 / f_code.co_filename: /mpmath/libmp/libintmath.py
00:00:50 v #560 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg:
00:00:50 v #561 > > None
00:00:50 v #562 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2
00:00:50 v #563 > > / f_lineno: 93 / f_code.co_filename: /mpmath/libmp/libintmath.py
00:00:50 v #564 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg:
00:00:50 v #565 > > None
00:00:50 v #566 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals:
00:00:50 v #567 > > n=2, bc=2 / f_lineno: 94 / f_code.co_filename: /mpmath/libmp/libintmath.py
00:00:50 v #568 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg:
00:00:50 v #569 > > None
00:00:50 v #570 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals:
00:00:50 v #571 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: /mpmath/libmp/libintmath.py
00:00:50 v #572 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg:
00:00:50 v #573 > > None
00:00:50 v #574 > > │ return(zeta_) / f_code.co_name: python_bitcount / f_locals:
00:00:50 v #575 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: /mpmath/libmp/libintmath.py
00:00:50 v #576 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg:
00:00:50 v #577 > > 2
00:00:50 v #578 > > │ zeta_ / result: (0.867351829635993 + 0.275127238807858j)
00:00:50 v #579 > > count: 1812
00:00:50 v #580 > > │ zeta / count: 0 / s: Complex { re: 2.0, im: -2.0 }
00:00:50 v #581 > > │ zeta__ / s: Complex { re: 2.0, im: -2.0 } / result:
00:00:50 v #582 > > Ok(Complex { re: 0.8673518296359931, im: 0.27512723880785767 }) / z: Complex {
00:00:50 v #583 > > re: NaN, im: NaN }
00:00:50 v #584 > > │ __assert_lt / actual: 5.182963599315027e-5 / expected: 0.001
00:00:50 v #585 > > │ __assert_lt / actual: 0.00012723880785764363 / expected:
00:00:50 v #586 > > 0.001
00:00:50 v #587 > > │
00:00:50 v #588 > >
00:00:50 v #589 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 v #590 > > │ ## test_trivial_zero_at_negative_even___
00:00:50 v #591 > >
00:00:50 v #592 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:50 v #593 > > inl test_trivial_zero_at_negative_even___ log = run_test log fun zeta, gamma =>
00:00:50 v #594 > >     (join listm'.init_series -2f64 -40 -2)
00:00:50 v #595 > >     |> listm.iter fun n =>
00:00:50 v #596 > >         inl s = .^(n, 0)
00:00:50 v #597 > >         inl result = zeta s
00:00:50 v #598 > >
00:00:50 v #599 > >         result |> re |> _assert_eq 0
00:00:50 v #600 > >         result |> im |> _assert_eq 0
00:00:50 v #601 > >
00:00:50 v #602 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:50 v #603 > > //// test
00:00:50 v #604 > > ///! rust -d num-complex pyo3
00:00:50 v #605 > >
00:00:50 v #606 > > test_trivial_zero_at_negative_even___ true
00:00:57 v #607 > >
00:00:57 v #608 > > ── [ 7.43s - return value ] ────────────────────────────────────────────────────
00:00:57 v #609 > > │ zeta_ / s: (-2.0, 0.0) / count: 0
00:00:57 v #610 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),
00:00:57 v #611 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:00:57 v #612 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:57 v #613 > > arg: None
00:00:57 v #614 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),
00:00:57 v #615 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:00:57 v #616 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:00:57 v #617 > > arg: None
00:00:57 v #618 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),
00:00:57 v #619 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531
00:00:57 v #620 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:00:57 v #621 > > f_back.f_code.co_filename:  / arg: None
00:00:57 v #622 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),
00:00:57 v #623 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532
00:00:57 v #624 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:00:57 v #625 > > f_back.f_code.co_filename:  / arg: None
00:00:57 v #626 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),
00:00:57 v #627 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533
00:00:57 v #628 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:00:57 v #629 > > f_back.f_code.co_filename:  / arg: None
00:00:57 v #630 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j),
00:00:57 v #631 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:00:57 v #632 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:00:57 v #633 > > /mpmath/functions/zeta.py / arg: None
00:00:57 v #634 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j),
00:00:57 v #635 > > kwargs={}, name='zeta' /...lename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:57 v #636 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None
00:00:57 v #637 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals:
00:00:57 v #638 > > f_lineno: 604 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:57 v #639 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None
00:00:57 v #640 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals:
00:00:57 v #641 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:57 v #642 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None
00:00:57 v #643 > > │ return(gamma_) / f_code.co_name: make_mpc / f_locals:
00:00:57 v #644 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:57 v #645 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg:
00:00:57 v #646 > > mpc(real='8.1591528324789768e+47', imag='0.0')
00:00:57 v #647 > > │ return(gamma_) / f_code.co_name: f / f_locals:
00:00:57 v #648 > > x=mpc(real='41.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n'
00:00:57 v #649 > > f_lineno: 1007 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:00:57 v #650 > > 25 / f_back.f_code.co_filename:  / arg: mpc(real='8.1591528324789768e+47',
00:00:57 v #651 > > imag='0.0')
00:00:57 v #652 > > │ gamma_ / result: (8.15915283247898e+47 + 0.0j) / count: 149
00:00:57 v #653 > > │ gamma__ / s: Complex { re: 41.0, im: 0.0 } / result:
00:00:57 v #654 > > Ok(Complex { re: 8.159152832478977e47, im: 0.0 })
00:00:57 v #655 > > │ zeta / count: 1 / s: Complex { re: 41.0, im: -0.0 }
00:00:57 v #656 > > │ zeta__ / s: Complex { re: -40.0, im: 0.0 } / result:
00:00:57 v #657 > > Ok(Complex { re: 0.0, im: 0.0 }) / z: Complex { re: NaN, im: NaN }
00:00:57 v #658 > > │ __assert_eq / actual: 0.0 / expected: 0.0
00:00:57 v #659 > > │ __assert_eq / actual: 0.0 / expected: 0.0
00:00:57 v #660 > > │
00:00:57 v #661 > >
00:00:57 v #662 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:57 v #663 > > │ ## test_non_trivial_zero___
00:00:57 v #664 > >
00:00:57 v #665 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:57 v #666 > > inl test_non_trivial_zero___ log = run_test log fun zeta, gamma =>
00:00:57 v #667 > >     ;[[
00:00:57 v #668 > >         .^(0.5, 14.134725)
00:00:57 v #669 > >         .^(0.5, 21.022040)
00:00:57 v #670 > >         .^(0.5, 25.010857)
00:00:57 v #671 > >         .^(0.5, 30.424876)
00:00:57 v #672 > >         .^(0.5, 32.935062)
00:00:57 v #673 > >         .^(0.5, 37.586178)
00:00:57 v #674 > >     ]]
00:00:57 v #675 > >     |> fun x => a x : _ i32 _
00:00:57 v #676 > >     |> am.iter fun x =>
00:00:57 v #677 > >             inl result = zeta x
00:00:57 v #678 > >             result |> re |> abs |> _assert_lt 0.0001
00:00:57 v #679 > >             result |> im |> abs |> _assert_lt 0.0001
00:00:58 v #680 > >
00:00:58 v #681 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:58 v #682 > > //// test
00:00:58 v #683 > > ///! rust -d num-complex pyo3
00:00:58 v #684 > >
00:00:58 v #685 > > test_non_trivial_zero___ true
00:01:05 v #686 > >
00:01:05 v #687 > > ── [ 7.19s - return value ] ────────────────────────────────────────────────────
00:01:05 v #688 > > │ zeta_ / s: (0.5, 14.134725) / count: 0
00:01:05 v #689 > > │ call(zeta_) / f_code.co_name: zeta / f_locals:
00:01:05 v #690 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528
00:01:05 v #691 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:05 v #692 > > f_back.f_code.co_filename:  / arg: None
00:01:05 v #693 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:05 v #694 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530
00:01:05 v #695 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:05 v #696 > > f_back.f_code.co_filename:  / arg: None
00:01:05 v #697 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:05 v #698 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:
00:01:05 v #699 > > 531 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:05 v #700 > > f_back.f_code.co_filename:  / arg: None
00:01:05 v #701 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:05 v #702 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:
00:01:05 v #703 > > 532 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:05 v #704 > > f_back.f_code.co_filename:  / arg: None
00:01:05 v #705 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:05 v #706 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:
00:01:05 v #707 > > 533 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:05 v #708 > > f_back.f_code.co_filename:  / arg: None
00:01:05 v #709 > > │ call(zeta_) / f_code.co_name: f / f_locals:
00:01:05 v #710 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:01:05 v #711 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:01:05 v #712 > > /mpmath/functions/zeta.py / arg: None
00:01:05 v #713 > > │ line(zeta_) / f_code... arg: None
00:01:05 v #714 > > │ line(gamma_) / f_code.co_name: complex_stirling_series
00:01:05 v #715 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81,
00:01:05 v #716 > > _m=3416353708500640443578529333, tre=855591523614410863719,
00:01:05 v #717 > > tim=64316830603724894628746, ure=-1710577520534459139249,
00:01:05 v #718 > > uim=45518868236127668552, sre=1013002518538853602038572,
00:01:05 v #719 > > sim=90883161825546323029600502 / f_lineno: 1637 / f_code.co_filename:
00:01:05 v #720 > > /mpmath/libmp/gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename:
00:01:05 v #721 > > /mpmath/libmp/gammazeta.py / arg: None
00:01:05 v #722 > > │ line(gamma_) / f_code.co_name: complex_stirling_series
00:01:05 v #723 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81,
00:01:05 v #724 > > _m=3416353708500640443578529333, tre=-1816151534455075068,
00:01:05 v #725 > > tim=-45486653225747820096, ure=-1710577520534459139249,
00:01:05 v #726 > > uim=45518868236127668552, sre=1013002518538853602038572,
00:01:05 v #727 > > sim=90883161825546323029600502 / f_lineno: 1638 / f_code.co_filename:
00:01:05 v #728 > > /mpmath/libmp/gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename:
00:01:05 v #729 > > /mpmath/libmp/gammazeta.py / arg: None
00:01:05 v #730 > > │ gamma_ / result: (-1.32798420042152e-26 +
00:01:05 v #731 > > 5.5751975252688e-26j) / count: 309
00:01:05 v #732 > > │ gamma__ / s: Complex { re: 0.5, im: -37.586178 } / result:
00:01:05 v #733 > > Ok(Complex { re: -1.3279842004215153e-26, im: 5.575197525268802e-26 })
00:01:05 v #734 > > │ zeta__ / s: Complex { re: 0.5, im: 37.586178 } / result:
00:01:05 v #735 > > Ok(Complex { re: -8.910186507947958e-8, im: -2.943780446402868e-7 }) / z:
00:01:05 v #736 > > Complex { re: -0.0, im: 0.0 }
00:01:05 v #737 > > │ __assert_lt / actual: 8.910186507947958e-8 / expected: 0.0001
00:01:05 v #738 > > │ __assert_lt / actual: 2.943780446402868e-7 / expected: 0.0001
00:01:05 v #739 > > │
00:01:05 v #740 > >
00:01:05 v #741 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:05 v #742 > > │ ## test_real_part_greater_than_one___
00:01:05 v #743 > >
00:01:05 v #744 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:05 v #745 > > inl test_real_part_greater_than_one___ log = run_test log fun zeta, gamma =>
00:01:05 v #746 > >     inl points = ;[[ 2; 3; 4; 5; 10; 20; 50 ]]
00:01:05 v #747 > >     (a points : _ i32 _)
00:01:05 v #748 > >     |> am.iter fun point =>
00:01:05 v #749 > >         inl s = .^(point, 0)
00:01:05 v #750 > >         inl result = zeta s
00:01:05 v #751 > >         result |> re |> _assert_gt 0
00:01:05 v #752 > >         result |> im |> _assert_eq 0
00:01:05 v #753 > >
00:01:05 v #754 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:05 v #755 > > //// test
00:01:05 v #756 > > ///! rust -d num-complex pyo3
00:01:05 v #757 > >
00:01:05 v #758 > > test_real_part_greater_than_one___ true
00:01:12 v #759 > >
00:01:12 v #760 > > ── [ 7.19s - return value ] ────────────────────────────────────────────────────
00:01:12 v #761 > > │ zeta_ / s: (2.0, 0.0) / count: 0
00:01:12 v #762 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:01:12 v #763 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:01:12 v #764 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:12 v #765 > > arg: None
00:01:12 v #766 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:01:12 v #767 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:01:12 v #768 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:12 v #769 > > arg: None
00:01:12 v #770 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:01:12 v #771 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:
00:01:12 v #772 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:12 v #773 > > arg: None
00:01:12 v #774 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:01:12 v #775 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:
00:01:12 v #776 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:12 v #777 > > arg: None
00:01:12 v #778 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:01:12 v #779 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:
00:01:12 v #780 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:12 v #781 > > arg: None
00:01:12 v #782 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),
00:01:12 v #783 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:01:12 v #784 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:01:12 v #785 > > /mpmath/functions/zeta.py / arg: None
00:01:12 v #786 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),
00:01:12 v #787 > > kwargs={}, name='zeta' / f_linen...f_code.co_filename: /mpmath/ctx_mp_python.py
00:01:12 v #788 > > / f_back.f_lineno: 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py
00:01:12 v #789 > > arg: None
00:01:12 v #790 > > │ line(zeta_) / f_code.co_name: make_mpc / f_locals:
00:01:12 v #791 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:01:12 v #792 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None
00:01:12 v #793 > > │ return(zeta_) / f_code.co_name: make_mpc / f_locals:
00:01:12 v #794 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:01:12 v #795 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg:
00:01:12 v #796 > > mpc(real='1.0000000000000009', imag='0.0')
00:01:12 v #797 > > │ return(zeta_) / f_code.co_name: f / f_locals:
00:01:12 v #798 > > x=mpc(real='50.0', imag='0.0'), kwargs={}, name='zeta', prec=53, rounding='n'
00:01:12 v #799 > > f_lineno: 1007 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:01:12 v #800 > > 533 / f_back.f_code.co_filename: /mpmath/functions/zeta.py / arg:
00:01:12 v #801 > > mpc(real='1.0000000000000009', imag='0.0')
00:01:12 v #802 > > │ return(zeta_) / f_code.co_name: zeta / f_locals: s=(50+0j),
00:01:12 v #803 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533
00:01:12 v #804 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:12 v #805 > > f_back.f_code.co_filename:  / arg: mpc(real='1.0000000000000009', imag='0.0')
00:01:12 v #806 > > │ zeta_ / result: (1.0 + 0.0j) / count: 181
00:01:12 v #807 > > │ zeta / count: 0 / s: Complex { re: 50.0, im: 0.0 }
00:01:12 v #808 > > │ zeta__ / s: Complex { re: 50.0, im: 0.0 } / result:
00:01:12 v #809 > > Ok(Complex { re: 1.0000000000000009, im: 0.0 }) / z: Complex { re: NaN, im: NaN
00:01:12 v #810 > > }
00:01:12 v #811 > > │ __assert_gt / actual: 1.0000000000000009 / expected: 0.0
00:01:12 v #812 > > │ __assert_eq / actual: 0.0 / expected: 0.0
00:01:12 v #813 > > │
00:01:12 v #814 > >
00:01:12 v #815 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:12 v #816 > > │ ## test_zeta_at_1___
00:01:12 v #817 > >
00:01:12 v #818 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 v #819 > > inl test_zeta_at_1___ log = run_test log fun zeta, gamma =>
00:01:12 v #820 > >     inl s = .^(1, 0)
00:01:12 v #821 > >     inl result = zeta s
00:01:12 v #822 > >     result |> re |> _assert_eq limit.max
00:01:12 v #823 > >     result |> im |> _assert_eq 0
00:01:12 v #824 > >
00:01:12 v #825 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 v #826 > > //// test
00:01:12 v #827 > > ///! rust -d num-complex pyo3
00:01:12 v #828 > >
00:01:12 v #829 > > test_zeta_at_1___ true
00:01:19 v #830 > >
00:01:19 v #831 > > ── [ 7.14s - return value ] ────────────────────────────────────────────────────
00:01:19 v #832 > > │ zeta_ / s: (1.0, 0.0) / count: 0
00:01:19 v #833 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,
00:01:19 v #834 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:01:19 v #835 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:19 v #836 > > arg: None
00:01:19 v #837 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,
00:01:19 v #838 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:01:19 v #839 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:19 v #840 > > arg: None
00:01:19 v #841 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,
00:01:19 v #842 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:
00:01:19 v #843 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:19 v #844 > > arg: None
00:01:19 v #845 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,
00:01:19 v #846 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:
00:01:19 v #847 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:19 v #848 > > arg: None
00:01:19 v #849 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,
00:01:19 v #850 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:
00:01:19 v #851 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:19 v #852 > > arg: None
00:01:19 v #853 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(1+0j),
00:01:19 v #854 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:01:19 v #855 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:01:19 v #856 > > /mpmath/functions/zeta.py / arg: None
00:01:19 v #857 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(1+0j),
00:01:19 v #858 > > kwargs={}, name='zeta' / f_linen...back object at 0x<?>>)
00:01:19 v #859 > > │ return(gamma_) / f_code.co_name: f / f_locals:
00:01:19 v #860 > > x=mpc(real='0.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n'
00:01:19 v #861 > > f_lineno: 1007 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno:
00:01:19 v #862 > > 25 / f_back.f_code.co_filename:  / arg: None
00:01:19 v #863 > > │ exception(gamma_) / f_code.co_name: fn / f_locals: log=True,
00:01:19 v #864 > > s=0j / f_lineno: 25 / f_code.co_filename:  / f_back.f_lineno:
00:01:19 v #865 > > f_back.f_code.co_filename:  / arg: (<class 'ValueError'>, ValueError('gamma
00:01:19 v #866 > > function pole'), <traceback object at 0x<?>>)
00:01:19 v #867 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j
00:01:19 v #868 > > / f_lineno: 29 / f_code.co_filename:  / f_back.f_lineno:
00:01:19 v #869 > > f_back.f_code.co_filename:  / arg: None
00:01:19 v #870 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j,
00:01:19 v #871 > > e=ValueError('gamma function pole') / f_lineno: 30 / f_code.co_filename:
00:01:19 v #872 > > f_back.f_lineno:  / f_back.f_code.co_filename:  / arg: None
00:01:19 v #873 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j
00:01:19 v #874 > > / f_lineno: 32 / f_code.co_filename:  / f_back.f_lineno:
00:01:19 v #875 > > f_back.f_code.co_filename:  / arg: None
00:01:19 v #876 > > │ return(gamma_) / f_code.co_name: fn / f_locals: log=True,
00:01:19 v #877 > > s=0j / f_lineno: 32 / f_code.co_filename:  / f_back.f_lineno:
00:01:19 v #878 > > f_back.f_code.co_filename:  / arg: (0.0, 0.0)
00:01:19 v #879 > > │ gamma__ / s: Complex { re: 0.0, im: 0.0 } / result:
00:01:19 v #880 > > Ok(Complex { re: 0.0, im: 0.0 })
00:01:19 v #881 > > │ zeta__ / s: Complex { re: 1.0, im: 0.0 } / result: Ok(Complex
00:01:19 v #882 > > { re: inf, im: 0.0 }) / z: Complex { re: 0.0, im: 0.0 }
00:01:19 v #883 > > │ __assert_eq / actual: inf / expected: inf
00:01:19 v #884 > > │ __assert_eq / actual: 0.0 / expected: 0.0
00:01:19 v #885 > > │
00:01:19 v #886 > >
00:01:19 v #887 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:19 v #888 > > │ ## test_symmetry_across_real_axis___
00:01:19 v #889 > >
00:01:19 v #890 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:19 v #891 > > inl test_symmetry_across_real_axis___ log = run_test log fun zeta, gamma =>
00:01:19 v #892 > >     inl s = .^(2, 10)
00:01:19 v #893 > >     inl result_positive_im = zeta s
00:01:19 v #894 > >     inl result_negative_im = zeta .^(re s, -(im s))
00:01:19 v #895 > >     inl conj = result_negative_im |> conj
00:01:19 v #896 > >     result_positive_im |> re |> _assert_eq (conj |> re)
00:01:19 v #897 > >     result_positive_im |> im |> _assert_eq (conj |> im)
00:01:19 v #898 > >
00:01:19 v #899 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:19 v #900 > > //// test
00:01:19 v #901 > > ///! rust -d num-complex pyo3
00:01:19 v #902 > >
00:01:19 v #903 > > test_symmetry_across_real_axis___ true
00:01:27 v #904 > >
00:01:27 v #905 > > ── [ 7.03s - return value ] ────────────────────────────────────────────────────
00:01:27 v #906 > > │ zeta_ / s: (2.0, 10.0) / count: 0
00:01:27 v #907 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),
00:01:27 v #908 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:01:27 v #909 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:27 v #910 > > arg: None
00:01:27 v #911 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),
00:01:27 v #912 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:01:27 v #913 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:27 v #914 > > arg: None
00:01:27 v #915 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),
00:01:27 v #916 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531
00:01:27 v #917 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:27 v #918 > > f_back.f_code.co_filename:  / arg: None
00:01:27 v #919 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),
00:01:27 v #920 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532
00:01:27 v #921 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:27 v #922 > > f_back.f_code.co_filename:  / arg: None
00:01:27 v #923 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),
00:01:27 v #924 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533
00:01:27 v #925 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:27 v #926 > > f_back.f_code.co_filename:  / arg: None
00:01:27 v #927 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+10j),
00:01:27 v #928 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:01:27 v #929 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:01:27 v #930 > > /mpmath/functions/zeta.py / arg: None
00:01:27 v #931 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+10j),
00:01:27 v #932 > > kwargs={}, name='zeta' /.../ f_back.f_code.co_filename: /mpmath/libmp/libmpf.py
00:01:27 v #933 > > / arg: None
00:01:27 v #934 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals:
00:01:27 v #935 > > n=26, bc=5 / f_lineno: 94 / f_code.co_filename: /mpmath/libmp/libintmath.py
00:01:27 v #936 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg:
00:01:27 v #937 > > None
00:01:27 v #938 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals:
00:01:27 v #939 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: /mpmath/libmp/libintmath.py
00:01:27 v #940 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg:
00:01:27 v #941 > > None
00:01:27 v #942 > > │ return(zeta_) / f_code.co_name: python_bitcount / f_locals:
00:01:27 v #943 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: /mpmath/libmp/libintmath.py
00:01:27 v #944 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg:
00:01:27 v #945 > > 5
00:01:27 v #946 > > │ line(zeta_) / f_code.co_name: mpf_add / f_locals: s=(0, 1, 2,
00:01:27 v #947 > > 1), t=(0, 25, 2, 5), prec=14, rnd='d', _sub=0, ssign=0, sman=1, sexp=2, sbc=1,
00:01:27 v #948 > > tsign=0, tman=25, texp=2, tbc=5, offset=0, man=26, bc=5 / f_lineno: 779
00:01:27 v #949 > > f_code.co_filename: /mpmath/libmp/libmpf.py / f_back.f_lineno: 1401
00:01:27 v #950 > > f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: None
00:01:27 v #951 > > │ zeta_ / result: (1.19798250067418 + 0.0791704917205257j)
00:01:27 v #952 > > count: 1174
00:01:27 v #953 > > │ zeta / count: 0 / s: Complex { re: 2.0, im: -10.0 }
00:01:27 v #954 > > │ zeta__ / s: Complex { re: 2.0, im: -10.0 } / result:
00:01:27 v #955 > > Ok(Complex { re: 1.1979825006741847, im: 0.07917049172052575 }) / z: Complex {
00:01:27 v #956 > > re: NaN, im: NaN }
00:01:27 v #957 > > │ __assert_eq / actual: 1.1979825006741847 / expected:
00:01:27 v #958 > > 1.1979825006741847
00:01:27 v #959 > > │ __assert_eq / actual: -0.07917049172052575 / expected:
00:01:27 v #960 > > -0.07917049172052575
00:01:27 v #961 > > │
00:01:27 v #962 > >
00:01:27 v #963 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 v #964 > > │ ## test_behavior_near_origin___
00:01:27 v #965 > >
00:01:27 v #966 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 v #967 > > inl test_behavior_near_origin___ log = run_test log fun zeta, gamma =>
00:01:27 v #968 > >     inl s = .^(0.01, 0.01)
00:01:27 v #969 > >     inl result = zeta s
00:01:27 v #970 > >     result |> re |> _assert_lt limit.max
00:01:27 v #971 > >     result |> im |> _assert_lt limit.max
00:01:27 v #972 > >
00:01:27 v #973 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 v #974 > > //// test
00:01:27 v #975 > > ///! rust -d num-complex pyo3
00:01:27 v #976 > >
00:01:27 v #977 > > test_behavior_near_origin___ true
00:01:34 v #978 > >
00:01:34 v #979 > > ── [ 6.98s - return value ] ────────────────────────────────────────────────────
00:01:34 v #980 > > │ zeta_ / s: (0.01, 0.01) / count: 0
00:01:34 v #981 > > │ call(zeta_) / f_code.co_name: zeta / f_locals:
00:01:34 v #982 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528
00:01:34 v #983 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:34 v #984 > > f_back.f_code.co_filename:  / arg: None
00:01:34 v #985 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:34 v #986 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530
00:01:34 v #987 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:34 v #988 > > f_back.f_code.co_filename:  / arg: None
00:01:34 v #989 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:34 v #990 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531
00:01:34 v #991 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:34 v #992 > > f_back.f_code.co_filename:  / arg: None
00:01:34 v #993 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:34 v #994 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532
00:01:34 v #995 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:34 v #996 > > f_back.f_code.co_filename:  / arg: None
00:01:34 v #997 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:34 v #998 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533
00:01:34 v #999 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:34 v #1000 > > f_back.f_code.co_filename:  / arg: None
00:01:34 v #1001 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(0.01+0.01j),
00:01:34 v #1002 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:01:34 v #1003 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:01:34 v #1004 > > /mpmath/functions/zeta.py / arg: None
00:01:34 v #1005 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(0...py
00:01:34 v #1006 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py
00:01:34 v #1007 > > arg: None
00:01:34 v #1008 > > │ line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0,
00:01:34 v #1009 > > 4458563631096791, -52, 52), (1, 5764607523034235, -59, 53)), prec=53, rnd='n',
00:01:34 v #1010 > > type=0, a=(0, 4458563631096791, -52, 52), b=(1, 5764607523034235, -59, 53),
00:01:34 v #1011 > > asign=0, aman=4458563631096791, aexp=-52, abc=52, bsign=1,
00:01:34 v #1012 > > bman=5764607523034235, bexp=-59, bbc=53, wp=73, amag=0, bmag=-6, mag=0, an=0,
00:01:34 v #1013 > > bn=0, absn=0j, gamma_size=0, need_reflection=0, zorig=((0, 4458563631096791,
00:01:34 v #1014 > > -52, 52), (1, 5764607523034235, -59, 53)), yfinal=0, balance_prec=0,
00:01:34 v #1015 > > n_for_stirling=14, need_reduction=True, afix=132131814190692672995328,
00:01:34 v #1016 > > bfix=-94447329657392906240, r=0, zprered=((0, 4458563631096791, -52, 52), (1,
00:01:34 v #1017 > > 5764607523034235, -59, 53)), d=14, rre=56942610883563778729574216337150,
00:01:34 v #1018 > > one=9444732965739290427392, rim=-1820461636508155576115177658065, k=12
00:01:34 v #1019 > > f_lineno: 2043 / f_code.co_filename: /mpmath/libmp/gammazeta.py
00:01:34 v #1020 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py
00:01:34 v #1021 > > arg: None
00:01:34 v #1022 > > │ gamma_ / result: (1.00577030202902 + 0.0059717824054102j)
00:01:34 v #1023 > > count: 383
00:01:34 v #1024 > > │ gamma__ / s: Complex { re: 0.99, im: -0.01 } / result:
00:01:34 v #1025 > > Ok(Complex { re: 1.005770302029023, im: 0.005971782405410201 })
00:01:34 v #1026 > > │ zeta__ / s: Complex { re: 0.01, im: 0.01 } / result:
00:01:34 v #1027 > > Ok(Complex { re: -0.5091873433665667, im: -0.00939202213994577 }) / z: Complex {
00:01:34 v #1028 > > re: 0.0, im: 0.0 }
00:01:34 v #1029 > > │ __assert_lt / actual: -0.5091873433665667 / expected: inf
00:01:34 v #1030 > > │ __assert_lt / actual: -0.00939202213994577 / expected: inf
00:01:34 v #1031 > > │
00:01:34 v #1032 > >
00:01:34 v #1033 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:34 v #1034 > > │ ## test_imaginary_axis
00:01:34 v #1035 > >
00:01:34 v #1036 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:34 v #1037 > > inl test_imaginary_axis log = run_test log fun zeta, gamma =>
00:01:34 v #1038 > >     (join [[ 10; 20; 30; 40; 50; 60; 70; 80; 90; 100 ]])
00:01:34 v #1039 > >     |> listm.iter fun s =>
00:01:34 v #1040 > >         inl s = .^(0, s)
00:01:34 v #1041 > >         inl result = zeta s
00:01:34 v #1042 > >         result |> re |> _assert_ne 0
00:01:34 v #1043 > >         result |> im |> _assert_ne 0
00:01:34 v #1044 > >
00:01:34 v #1045 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:34 v #1046 > > //// test
00:01:34 v #1047 > > ///! rust -d num-complex pyo3
00:01:34 v #1048 > >
00:01:34 v #1049 > > test_imaginary_axis true
00:01:41 v #1050 > >
00:01:41 v #1051 > > ── [ 7.52s - return value ] ────────────────────────────────────────────────────
00:01:41 v #1052 > > │ zeta_ / s: (0.0, 10.0) / count: 0
00:01:41 v #1053 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,
00:01:41 v #1054 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:01:41 v #1055 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:41 v #1056 > > arg: None
00:01:41 v #1057 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,
00:01:41 v #1058 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:01:41 v #1059 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:41 v #1060 > > arg: None
00:01:41 v #1061 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,
00:01:41 v #1062 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:
00:01:41 v #1063 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:41 v #1064 > > arg: None
00:01:41 v #1065 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,
00:01:41 v #1066 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:
00:01:41 v #1067 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:41 v #1068 > > arg: None
00:01:41 v #1069 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,
00:01:41 v #1070 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:
00:01:41 v #1071 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:41 v #1072 > > arg: None
00:01:41 v #1073 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={},
00:01:41 v #1074 > > name='zeta' / f_lineno: 989 / f_code.co_filename: /mpmath/ctx_mp_python.py
00:01:41 v #1075 > > f_back.f_lineno: 533 / f_back.f_code.co_filename: /mpmath/functions/zeta.py
00:01:41 v #1076 > > arg: None
00:01:41 v #1077 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={},
00:01:41 v #1078 > > name='zeta' / f_lineno: 990 / f_code.co_f...g: None
00:01:41 v #1079 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1,
00:01:41 v #1080 > > 0, 1), prec=83 / f_lineno: 511 / f_code.co_filename: /mpmath/libmp/libmpf.py
00:01:41 v #1081 > > f_back.f_lineno: 2031 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py
00:01:41 v #1082 > > arg: None
00:01:41 v #1083 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1,
00:01:41 v #1084 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1 / f_lineno: 512 / f_code.co_filename:
00:01:41 v #1085 > > /mpmath/libmp/libmpf.py / f_back.f_lineno: 2031 / f_back.f_code.co_filename:
00:01:41 v #1086 > > /mpmath/libmp/gammazeta.py / arg: None
00:01:41 v #1087 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1,
00:01:41 v #1088 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 513
00:01:41 v #1089 > > f_code.co_filename: /mpmath/libmp/libmpf.py / f_back.f_lineno: 2031
00:01:41 v #1090 > > f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py / arg: None
00:01:41 v #1091 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1,
00:01:41 v #1092 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 517
00:01:41 v #1093 > > f_code.co_filename: /mpmath/libmp/libmpf.py / f_back.f_lineno: 2031
00:01:41 v #1094 > > f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py / arg: None
00:01:41 v #1095 > > │ gamma_ / result: (-1.51425318049776e-67 +
00:01:41 v #1096 > > 2.79082155561748e-69j) / count: 289
00:01:41 v #1097 > > │ gamma__ / s: Complex { re: 1.0, im: -100.0 } / result:
00:01:41 v #1098 > > Ok(Complex { re: -1.514253180497756e-67, im: 2.7908215556174775e-69 })
00:01:41 v #1099 > > │ zeta__ / s: Complex { re: 0.0, im: 100.0 } / result:
00:01:41 v #1100 > > Ok(Complex { re: 6.51721042625301, im: 0.18128842533791736 }) / z: Complex { re:
00:01:41 v #1101 > > 0.0, im: 0.0 }
00:01:41 v #1102 > > │ __assert_ne / actual: 6.51721042625301 / expected: 0.0
00:01:41 v #1103 > > │ __assert_ne / actual: 0.18128842533791736 / expected: 0.0
00:01:41 v #1104 > > │
00:01:41 v #1105 > >
00:01:41 v #1106 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:41 v #1107 > > │ ## test_critical_strip
00:01:41 v #1108 > >
00:01:41 v #1109 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:41 v #1110 > > inl test_critical_strip log = run_test log fun zeta, gamma =>
00:01:41 v #1111 > >     (join [[
00:01:41 v #1112 > >         .^(0.5, 14.134725)
00:01:41 v #1113 > >         .^(0.75, 20.5)
00:01:41 v #1114 > >         .^(1.25, 30.1)
00:01:41 v #1115 > >         .^(0.25, 40.0)
00:01:41 v #1116 > >         .^(1.0, 50.0)
00:01:41 v #1117 > >     ]])
00:01:41 v #1118 > >     |> listm.iter fun s =>
00:01:41 v #1119 > >         inl result = zeta s
00:01:41 v #1120 > >         result |> re |> _assert_ne 0
00:01:41 v #1121 > >         result |> im |> _assert_ne 0
00:01:42 v #1122 > >
00:01:42 v #1123 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:42 v #1124 > > //// test
00:01:42 v #1125 > > ///! rust -d num-complex pyo3
00:01:42 v #1126 > >
00:01:42 v #1127 > > test_critical_strip true
00:01:49 v #1128 > >
00:01:49 v #1129 > > ── [ 7.23s - return value ] ────────────────────────────────────────────────────
00:01:49 v #1130 > > │ zeta_ / s: (0.5, 14.134725) / count: 0
00:01:49 v #1131 > > │ call(zeta_) / f_code.co_name: zeta / f_locals:
00:01:49 v #1132 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528
00:01:49 v #1133 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:49 v #1134 > > f_back.f_code.co_filename:  / arg: None
00:01:49 v #1135 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:49 v #1136 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530
00:01:49 v #1137 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:49 v #1138 > > f_back.f_code.co_filename:  / arg: None
00:01:49 v #1139 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:49 v #1140 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:
00:01:49 v #1141 > > 531 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:49 v #1142 > > f_back.f_code.co_filename:  / arg: None
00:01:49 v #1143 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:49 v #1144 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:
00:01:49 v #1145 > > 532 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:49 v #1146 > > f_back.f_code.co_filename:  / arg: None
00:01:49 v #1147 > > │ line(zeta_) / f_code.co_name: zeta / f_locals:
00:01:49 v #1148 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:
00:01:49 v #1149 > > 533 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25
00:01:49 v #1150 > > f_back.f_code.co_filename:  / arg: None
00:01:49 v #1151 > > │ call(zeta_) / f_code.co_name: f / f_locals:
00:01:49 v #1152 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:01:49 v #1153 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:01:49 v #1154 > > /mpmath/functions/zeta.py / arg: None
00:01:49 v #1155 > > │ line(zeta_) / f_code...210, sim=241793223535862290161314995
00:01:49 v #1156 > > f_lineno: 1648 / f_code.co_filename: /mpmath/libmp/gammazeta.py
00:01:49 v #1157 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py
00:01:49 v #1158 > > arg: None
00:01:49 v #1159 > > │ line(gamma_) / f_code.co_name: complex_stirling_series
00:01:49 v #1160 > > f_locals: x=0, y=-241785163922925834941235200, prec=82,
00:01:49 v #1161 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530,
00:01:49 v #1162 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314995
00:01:49 v #1163 > > f_lineno: 1649 / f_code.co_filename: /mpmath/libmp/gammazeta.py
00:01:49 v #1164 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py
00:01:49 v #1165 > > arg: None
00:01:49 v #1166 > > │ line(gamma_) / f_code.co_name: complex_stirling_series
00:01:49 v #1167 > > f_locals: x=0, y=-241785163922925834941235200, prec=82,
00:01:49 v #1168 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530,
00:01:49 v #1169 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314997
00:01:49 v #1170 > > f_lineno: 1650 / f_code.co_filename: /mpmath/libmp/gammazeta.py
00:01:49 v #1171 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py
00:01:49 v #1172 > > arg: None
00:01:49 v #1173 > > │ gamma_ / result: (2.63173210619768e-35 -
00:01:49 v #1174 > > 8.16464935465334e-36j) / count: 262
00:01:49 v #1175 > > │ gamma__ / s: Complex { re: 0.0, im: -50.0 } / result:
00:01:49 v #1176 > > Ok(Complex { re: 2.6317321061976804e-35, im: -8.164649354653339e-36 })
00:01:49 v #1177 > > │ zeta__ / s: Complex { re: 1.0, im: 50.0 } / result:
00:01:49 v #1178 > > Ok(Complex { re: 0.44103873082309397, im: 0.281582455029683 }) / z: Complex {
00:01:49 v #1179 > > re: 0.0, im: 0.0 }
00:01:49 v #1180 > > │ __assert_ne / actual: 0.44103873082309397 / expected: 0.0
00:01:49 v #1181 > > │ __assert_ne / actual: 0.281582455029683 / expected: 0.0
00:01:49 v #1182 > > │
00:01:49 v #1183 > >
00:01:49 v #1184 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:49 v #1185 > > │ ## test_reflection_formula_for_specific_value
00:01:49 v #1186 > >
00:01:49 v #1187 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 v #1188 > > inl test_reflection_formula_for_specific_value log = run_test log fun zeta,
00:01:49 v #1189 > > gamma =>
00:01:49 v #1190 > >     (join [[
00:01:49 v #1191 > >         .^(3, 4)
00:01:49 v #1192 > >         .^(2.5, -3.5)
00:01:49 v #1193 > >         .^(1.5, 2.5)
00:01:49 v #1194 > >         .^(0.5, 14.134725)
00:01:49 v #1195 > >     ]])
00:01:49 v #1196 > >     |> listm.iter fun s =>
00:01:49 v #1197 > >         inl lhs = zeta s
00:01:49 v #1198 > >         inl reflection_coefficient =
00:01:49 v #1199 > >             (.^(2, 0) .** s)
00:01:49 v #1200 > >             .* (.^(pi, 0) .** (s .- .^(1, 0)))
00:01:49 v #1201 > >             .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin)
00:01:49 v #1202 > >             .* gamma (.^(1, 0) .- s)
00:01:49 v #1203 > >
00:01:49 v #1204 > >         inl one_minus_s = .^(1 - re s, -(im s))
00:01:49 v #1205 > >         inl rhs = reflection_coefficient .* zeta one_minus_s
00:01:49 v #1206 > >
00:01:49 v #1207 > >         re lhs - re rhs |> abs |> _assert_lt 0.0001
00:01:49 v #1208 > >         im lhs - im rhs |> abs |> _assert_lt 0.0001
00:01:49 v #1209 > >
00:01:49 v #1210 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 v #1211 > > //// test
00:01:49 v #1212 > > ///! rust -d num-complex pyo3
00:01:49 v #1213 > >
00:01:49 v #1214 > > test_reflection_formula_for_specific_value true
00:01:56 v #1215 > >
00:01:56 v #1216 > > ── [ 7.47s - return value ] ────────────────────────────────────────────────────
00:01:56 v #1217 > > │ zeta_ / s: (3.0, 4.0) / count: 0
00:01:56 v #1218 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,
00:01:56 v #1219 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:01:56 v #1220 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:56 v #1221 > > arg: None
00:01:56 v #1222 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,
00:01:56 v #1223 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:01:56 v #1224 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:56 v #1225 > > arg: None
00:01:56 v #1226 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,
00:01:56 v #1227 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:
00:01:56 v #1228 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:56 v #1229 > > arg: None
00:01:56 v #1230 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,
00:01:56 v #1231 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:
00:01:56 v #1232 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:56 v #1233 > > arg: None
00:01:56 v #1234 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,
00:01:56 v #1235 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:
00:01:56 v #1236 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:01:56 v #1237 > > arg: None
00:01:56 v #1238 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(3+4j),
00:01:56 v #1239 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:01:56 v #1240 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:01:56 v #1241 > > /mpmath/functions/zeta.py / arg: None
00:01:56 v #1242 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(3+4j),
00:01:56 v #1243 > > kwargs={}, name='zeta' / f_linen...045 / f_code.co_filename:
00:01:56 v #1244 > > /mpmath/libmp/gammazeta.py / f_back.f_lineno: 1007 / f_back.f_code.co_filename:
00:01:56 v #1245 > > /mpmath/ctx_mp_python.py / arg: None
00:01:56 v #1246 > > │ line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0,
00:01:56 v #1247 > > 1, -1, 1), (0, 3978571390186527, -48, 52)), prec=53, rnd='n', type=0, a=(0, 1,
00:01:56 v #1248 > > -1, 1), b=(0, 3978571390186527, -48, 52), asign=0, aman=1, aexp=-1, abc=1,
00:01:56 v #1249 > > bsign=0, bman=3978571390186527, bexp=-48, bbc=52, wp=79, amag=0, bmag=4, mag=4,
00:01:56 v #1250 > > an=0, bn=14, absn=14j, gamma_size=56, need_reflection=0, zorig=((0, 1, -1, 1),
00:01:56 v #1251 > > (0, 3978571390186527, -48, 52)), yfinal=0, balance_prec=0, n_for_stirling=15,
00:01:56 v #1252 > > need_reduction=True, afix=2115620184325601055735808,
00:01:56 v #1253 > > bfix=8543917002826194402410496, r=0, zprered=((0, 1, -1, 1), (0,
00:01:56 v #1254 > > 3978571390186527, -48, 52)), d=5, rre=-542313259704087430481959845,
00:01:56 v #1255 > > one=604462909807314587353088, rim=-1657865507045117397880679064, k=2 / f_lineno:
00:01:56 v #1256 > > 2043 / f_code.co_filename: /mpmath/libmp/gammazeta.py / f_back.f_lineno: 1007
00:01:56 v #1257 > > f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None
00:01:56 v #1258 > > │ gamma_ / result: (-1.4455538437607e-10 -
00:01:56 v #1259 > > 5.52278876877407e-10j) / count: 318
00:01:56 v #1260 > > │ gamma__ / s: Complex { re: 0.5, im: 14.134725 } / result:
00:01:56 v #1261 > > Ok(Complex { re: -1.4455538437606964e-10, im: -5.522788768774066e-10 })
00:01:56 v #1262 > > │ zeta__ / s: Complex { re: 0.5, im: -14.134725 } / result:
00:01:56 v #1263 > > Ok(Complex { re: 1.7674298413849186e-8, im: 1.1102028930923156e-7 }) / z:
00:01:56 v #1264 > > Complex { re: 0.0, im: 0.0 }
00:01:56 v #1265 > > │ __assert_lt / actual: 4.433688083284228e-22 / expected:
00:01:56 v #1266 > > 0.0001
00:01:56 v #1267 > > │ __assert_lt / actual: 1.3234889800848443e-22 / expected:
00:01:56 v #1268 > > 0.0001
00:01:56 v #1269 > > │
00:01:56 v #1270 > >
00:01:56 v #1271 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:56 v #1272 > > │ ## test_euler_product_formula
00:01:56 v #1273 > >
00:01:56 v #1274 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:56 v #1275 > > inl test_euler_product_formula log = run_test log fun zeta, gamma =>
00:01:56 v #1276 > >     inl s_values = join [[ 2; 2.5; 3; 3.5; 4; 4.5; 5 ]]
00:01:56 v #1277 > >     inl primes = join [[ 2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47;
00:01:56 v #1278 > > 53; 59; 61; 67; 71 ]]
00:01:56 v #1279 > >     s_values
00:01:56 v #1280 > >     |> listm.iter fun s_re =>
00:01:56 v #1281 > >         inl s = .^(s_re, 0)
00:01:56 v #1282 > >         inl product =
00:01:56 v #1283 > >             (1, primes)
00:01:56 v #1284 > >             ||> listm.fold fun acc x =>
00:01:56 v #1285 > >                 acc * 1 / (1 - x ** -s_re)
00:01:56 v #1286 > >
00:01:56 v #1287 > >         inl result = zeta s
00:01:56 v #1288 > >         re result - product |> abs |> _assert_lt 0.01
00:01:56 v #1289 > >         result |> im |> _assert_lt 0.01
00:01:57 v #1290 > >
00:01:57 v #1291 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:57 v #1292 > > //// test
00:01:57 v #1293 > > ///! rust -d num-complex pyo3
00:01:57 v #1294 > >
00:01:57 v #1295 > > test_euler_product_formula true
00:02:04 v #1296 > >
00:02:04 v #1297 > > ── [ 7.19s - return value ] ────────────────────────────────────────────────────
00:02:04 v #1298 > > │ zeta_ / s: (2.0, 0.0) / count: 0
00:02:04 v #1299 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:02:04 v #1300 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:
00:02:04 v #1301 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:02:04 v #1302 > > arg: None
00:02:04 v #1303 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:02:04 v #1304 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:
00:02:04 v #1305 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:02:04 v #1306 > > arg: None
00:02:04 v #1307 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:02:04 v #1308 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:
00:02:04 v #1309 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:02:04 v #1310 > > arg: None
00:02:04 v #1311 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:02:04 v #1312 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:
00:02:04 v #1313 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:02:04 v #1314 > > arg: None
00:02:04 v #1315 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,
00:02:04 v #1316 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:
00:02:04 v #1317 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:
00:02:04 v #1318 > > arg: None
00:02:04 v #1319 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),
00:02:04 v #1320 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:
00:02:04 v #1321 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:
00:02:04 v #1322 > > /mpmath/functions/zeta.py / arg: None
00:02:04 v #1323 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),
00:02:04 v #1324 > > kwargs={}, name='zeta' / f_linen...k.f_lineno: 985 / f_back.f_code.co_filename:
00:02:04 v #1325 > > /mpmath/libmp/gammazeta.py / arg: None
00:02:04 v #1326 > > │ line(zeta_) / f_code.co_name: mpf_zeta_int / f_locals: s=5,
00:02:04 v #1327 > > prec=53, rnd='n', wp=73, m=19.25, needed_terms=623488, n=33, d=[1, 2179, 792067,
00:02:04 v #1328 > > 115062531, 8930212611, 429314925315, 13983537177347, 327666966438659,
00:02:04 v #1329 > > 5764846406968067, 78615943485956867, 851604426176701187, 7470527451121689347,
00:02:04 v #1330 > > 53898915046387983107, 323897845985013506819, 1638178356374090130179,
00:02:04 v #1331 > > 7034281785235908174595, 25833609859980306522883, 81661917475887913739011,
00:02:04 v #1332 > > 223448095548034217779971, 532029677981012660429571, 1108048631855905753375491,
00:02:04 v #1333 > > 2029946562680066824315651, 3292927237466655352791811, 4769455369342763680768771,
00:02:04 v #1334 > > 6235511670496346417767171, 7463408621503347142796035, 8322751284048216428487427,
00:02:04 v #1335 > > 8818779962777819524211459, 9050689474911140452082435, 9136270117622166323831555,
00:02:04 v #1336 > > 9160252037839493347779331, 9165045885455648617505539, 9165654628010081032708867,
00:02:04 v #1337 > > 9165691521498228451812099], t=-84153986440240940095109733900764881301998910956,
00:02:04 v #1338 > > k=26 / f_lineno: 954 / f_code.co_filename: /mpmath/libmp/gammazeta.py
00:02:04 v #1339 > > f_back.f_lineno: 985 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py
00:02:04 v #1340 > > arg: None
00:02:04 v #1341 > > │ zeta_ / result: (1.03692775514337 + 0.0j) / count: 228
00:02:04 v #1342 > > │ zeta / count: 0 / s: Complex { re: 5.0, im: 0.0 }
00:02:04 v #1343 > > │ zeta__ / s: Complex { re: 5.0, im: 0.0 } / result: Ok(Complex
00:02:04 v #1344 > > { re: 1.03692775514337, im: 0.0 }) / z: Complex { re: NaN, im: NaN }
00:02:04 v #1345 > > │ __assert_lt / actual: 2.0033654735129858e-9 / expected: 0.01
00:02:04 v #1346 > > │ __assert_lt / actual: 0.0 / expected: 0.01
00:02:04 v #1347 > > │
00:02:04 v #1348 > >
00:02:04 v #1349 > > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 v #1350 > > │ ## graph
00:02:04 v #1351 > >
00:02:04 v #1352 > > ── mermaid ─────────────────────────────────────────────────────────────────────
00:02:04 v #1353 > > │ <div class="mermaidMarkdownContainer"
00:02:04 v #1354 > > style="background-color:white">
00:02:04 v #1355 > > │ <link rel="stylesheet"
00:02:04 v #1356 > > href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css"
00:02:04 v #1357 > > >
00:02:04 v #1358 > > │ <div id="2f8430f4b162417b9a24440afe6e1d8b"></div>
00:02:04 v #1359 > > │ <script type="module">
00:02:04 v #1360 > > │
00:02:04 v #1361 > > │             import mermaid from
00:02:04 v #1362 > > 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs';
00:02:04 v #1363 > > │             let renderTarget =
00:02:04 v #1364 > > document.getElementById('2f8430f4b162417b9a24440afe6e1d8b');
00:02:04 v #1365 > > │             try {
00:02:04 v #1366 > > │                 const {svg, bindFunctions} = await
00:02:04 v #1367 > > mermaid.mermaidAPI.render(
00:02:04 v #1368 > > │
00:02:04 v #1369 > > 'mermaid_2f8430f4b162417b9a24440afe6e1d8b',
00:02:04 v #1370 > > │                     `graph TD
00:02:04 v #1371 > > │     zeta("zeta()") --> convert
00:02:04 v #1372 > > │     zeta --> f["f()"]
00:02:04 v #1373 > > │     f --> mpc_f["mpc_zeta()"]
00:02:04 v #1374 > > │     f --> mpf_f["mpf_zeta()"]
00:02:04 v #1375 > > │     convert --> from_float
00:02:04 v #1376 > > │     from_float --> from_man_exp
00:02:04 v #1377 > > │     from_man_exp --> python_bitcount
00:02:04 v #1378 > > │     python_bitcount --> _normalize
00:02:04 v #1379 > > │     _normalize --> make_mpc
00:02:04 v #1380 > > │     make_mpc --> mpc_zeta["mpc_zeta()"]
00:02:04 v #1381 > > │     mpc_zeta --> mpf_zeta["mpf_zeta()"]
00:02:04 v #1382 > > │     mpf_zeta --> to_int
00:02:04 v #1383 > > │     to_int --> mpf_zeta_int["mpf_zeta_int()"]
00:02:04 v #1384 > > │     mpf_zeta_int --> borwein_coefficients
00:02:04 v #1385 > > │     borwein_coefficients -->
00:02:04 v #1386 > > from_man_exp_2("from_man_exp()")
00:02:04 v #1387 > > │     from_man_exp_2 -->
00:02:04 v #1388 > > python_bitcount_2("python_bitcount()")
00:02:04 v #1389 > > │     python_bitcount_2 --> _normalize_2("_normalize()")
00:02:04 v #1390 > > │     _normalize_2 --> make_mpc_2("make_mpc()")
00:02:04 v #1391 > > │     make_mpc_2 --> stop_trace
00:02:04 v #1392 > > │     mpf_zeta_int --> mpf_bernoulli
00:02:04 v #1393 > > │     mpf_bernoulli --> bernoulli_size
00:02:04 v #1394 > > │     bernoulli_size --> mpf_rdiv_int
00:02:04 v #1395 > > │     mpf_rdiv_int --> python_bitcount_3("python_bitcount()")
00:02:04 v #1396 > > │     python_bitcount_3 --> _normalize1
00:02:04 v #1397 > > │     _normalize1 --> from_man_exp_3("from_man_exp()")
00:02:04 v #1398 > > │     from_man_exp_3 --> _normalize_3("_normalize()")
00:02:04 v #1399 > > │     _normalize_3 --> mpf_sub
00:02:04 v #1400 > > │     mpf_sub --> mpf_add
00:02:04 v #1401 > > │     mpf_add --> mpf_neg
00:02:04 v #1402 > > │     mpf_neg --> _normalize1_2("_normalize1()")
00:02:04 v #1403 > > │     _normalize1_2 --> from_int
00:02:04 v #1404 > > │     from_int --> mpf_div
00:02:04 v #1405 > > │     mpf_div --> python_bitcount_4("python_bitcount()")
00:02:04 v #1406 > > │     python_bitcount_4 --> _normalize1_3("_normalize1()")
00:02:04 v #1407 > > │     _normalize1_3 --> make_mpc_3("make_mpc()")
00:02:04 v #1408 > > │     make_mpc_3 --> final_stop["stop_trace()"]`);
00:02:04 v #1409 > > │                 renderTarget.innerHTML = svg;
00:02:04 v #1410 > > │                 bindFunctions?.(renderTarget);
00:02:04 v #1411 > > │             }
00:02:04 v #1412 > > │             catch (error) {
00:02:04 v #1413 > > │                 console.log(error);
00:02:04 v #1414 > > │             }
00:02:04 v #1415 > > │ </script>
00:02:04 v #1416 > > │ </div>
00:02:04 v #1417 > > │
00:02:04 v #1418 > >
00:02:04 v #1419 > > ── mermaid ─────────────────────────────────────────────────────────────────────
00:02:04 v #1420 > > │ <div class="mermaidMarkdownContainer"
00:02:04 v #1421 > > style="background-color:white">
00:02:04 v #1422 > > │ <link rel="stylesheet"
00:02:04 v #1423 > > href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css"
00:02:04 v #1424 > > >
00:02:04 v #1425 > > │ <div id="525f294f4d61494c86d8b2e87107febe"></div>
00:02:04 v #1426 > > │ <script type="module">
00:02:04 v #1427 > > │
00:02:04 v #1428 > > │             import mermaid from
00:02:04 v #1429 > > 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs';
00:02:04 v #1430 > > │             let renderTarget =
00:02:04 v #1431 > > document.getElementById('525f294f4d61494c86d8b2e87107febe');
00:02:04 v #1432 > > │             try {
00:02:04 v #1433 > > │                 const {svg, bindFunctions} = await
00:02:04 v #1434 > > mermaid.mermaidAPI.render(
00:02:04 v #1435 > > │
00:02:04 v #1436 > > 'mermaid_525f294f4d61494c86d8b2e87107febe',
00:02:04 v #1437 > > │                     `graph TD
00:02:04 v #1438 > > │     zeta_rust("zeta() - Rust") --> num_traits("num-traits")
00:02:04 v #1439 > > │     zeta_rust --> num_bigint("num-bigint")
00:02:04 v #1440 > > │     zeta_rust --> rust_decimal("rust_decimal for
00:02:04 v #1441 > > precision")
00:02:04 v #1442 > > │     zeta_rust --> error_handling("Rust Error Handling")
00:02:04 v #1443 > > │
00:02:04 v #1444 > > │     num_traits --> num_traits_usage("Use for common
00:02:04 v #1445 > > traits")
00:02:04 v #1446 > > │     num_bigint --> bigint_operations("Arbitrary-precision
00:02:04 v #1447 > > arithmetic operations")
00:02:04 v #1448 > > │     rust_decimal --> decimal_operations("High-precision
00:02:04 v #1449 > > decimal operations")
00:02:04 v #1450 > > │     error_handling --> result_type("Use Result<T, E> for
00:02:04 v #1451 > > error handling")
00:02:04 v #1452 > > │
00:02:04 v #1453 > > │     bigint_operations --> convert_rust("convert() - Rust")
00:02:04 v #1454 > > │     bigint_operations --> normalize_rust("_normalize() -
00:02:04 v #1455 > > Rust")
00:02:04 v #1456 > > │
00:02:04 v #1457 > > │     convert_rust --> from_float_rust("from_float() - Rust")
00:02:04 v #1458 > > │     from_float_rust --> from_man_exp_rust("from_man_exp() -
00:02:04 v #1459 > > Rust")
00:02:04 v #1460 > > │     from_man_exp_rust --> bitcount_rust("bitcount() -
00:02:04 v #1461 > > Rust")
00:02:04 v #1462 > > │     bitcount_rust --> normalize_rust
00:02:04 v #1463 > > │     normalize_rust --> mpc_zeta_rust("mpc_zeta() - Rust")
00:02:04 v #1464 > > │     mpc_zeta_rust --> mpf_zeta_rust("mpf_zeta() - Rust")
00:02:04 v #1465 > > │     mpf_zeta_rust --> to_int_rust("to_int() - Rust")
00:02:04 v #1466 > > │     to_int_rust --> mpf_zeta_int_rust("mpf_zeta_int() -
00:02:04 v #1467 > > Rust")
00:02:04 v #1468 > > │
00:02:04 v #1469 > > │     mpf_zeta_int_rust -->
00:02:04 v #1470 > > borwein_coefficients_rust("borwein_coefficients() - Rust")
00:02:04 v #1471 > > │     borwein_coefficients_rust -->
00:02:04 v #1472 > > from_man_exp_rust_2("from_man_exp() - Rust")
00:02:04 v #1473 > > │     from_man_exp_rust_2 --> bitcount_rust_2("bitcount() -
00:02:04 v #1474 > > Rust")
00:02:04 v #1475 > > │     bitcount_rust_2 --> normalize_rust_2("_normalize() -
00:02:04 v #1476 > > Rust")
00:02:04 v #1477 > > │     normalize_rust_2 --> make_mpc_rust("make_mpc() - Rust")
00:02:04 v #1478 > > │
00:02:04 v #1479 > > │     mpf_zeta_int_rust -->
00:02:04 v #1480 > > mpf_bernoulli_rust("mpf_bernoulli() - Rust")
00:02:04 v #1481 > > │     mpf_bernoulli_rust -->
00:02:04 v #1482 > > bernoulli_size_rust("bernoulli_size() - Rust")
00:02:04 v #1483 > > │     bernoulli_size_rust -->
00:02:04 v #1484 > > mpf_rdiv_int_rust("mpf_rdiv_int() - Rust")
00:02:04 v #1485 > > │     mpf_rdiv_int_rust --> bitcount_rust_3("bitcount() -
00:02:04 v #1486 > > Rust")
00:02:04 v #1487 > > │     bitcount_rust_3 --> normalize1_rust("_normalize1() -
00:02:04 v #1488 > > Rust")
00:02:04 v #1489 > > │     normalize1_rust --> from_man_exp_rust_3("from_man_exp()
00:02:04 v #1490 > > - Rust")
00:02:04 v #1491 > > │     from_man_exp_rust_3 --> normalize_rust_3("_normalize()
00:02:04 v #1492 > > - Rust")
00:02:04 v #1493 > > │     normalize_rust_3 --> mpf_sub_rust("mpf_sub() - Rust")
00:02:04 v #1494 > > │     mpf_sub_rust --> mpf_add_rust("mpf_add() - Rust")
00:02:04 v #1495 > > │     mpf_add_rust --> mpf_neg_rust("mpf_neg() - Rust")
00:02:04 v #1496 > > │     mpf_neg_rust --> normalize1_rust_2("_normalize1() -
00:02:04 v #1497 > > Rust")
00:02:04 v #1498 > > │     normalize1_rust_2 --> from_int_rust("from_int() -
00:02:04 v #1499 > > Rust")
00:02:04 v #1500 > > │     from_int_rust --> mpf_div_rust("mpf_div() - Rust")
00:02:04 v #1501 > > │     mpf_div_rust --> bitcount_rust_4("bitcount() - Rust")
00:02:04 v #1502 > > │     bitcount_rust_4 --> normalize1_rust_3("_normalize1() -
00:02:04 v #1503 > > Rust")
00:02:04 v #1504 > > │
00:02:04 v #1505 > > │     style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px
00:02:04 v #1506 > > │     style num_traits fill:#bbf,stroke:#333,stroke-width:2px
00:02:04 v #1507 > > │     style num_bigint fill:#bbf,stroke:#333,stroke-width:2px
00:02:04 v #1508 > > │     style rust_decimal
00:02:04 v #1509 > > fill:#bbf,stroke:#333,stroke-width:2px
00:02:04 v #1510 > > │     style error_handling
00:02:04 v #1511 > > fill:#bbf,stroke:#333,stroke-width:2px
00:02:04 v #1512 > > │     style bigint_operations
00:02:04 v #1513 > > fill:#bfb,stroke:#333,stroke-width:2px
00:02:04 v #1514 > > │     style decimal_operations
00:02:04 v #1515 > > fill:#bfb,stroke:#333,stroke-width:2px
00:02:04 v #1516 > > │     style result_type
00:02:04 v #1517 > > fill:#bfb,stroke:#333,stroke-width:2px`);
00:02:04 v #1518 > > │                 renderTarget.innerHTML = svg;
00:02:04 v #1519 > > │                 bindFunctions?.(renderTarget);
00:02:04 v #1520 > > │             }
00:02:04 v #1521 > > │             catch (error) {
00:02:04 v #1522 > > │                 console.log(error);
00:02:04 v #1523 > > │             }
00:02:04 v #1524 > > │ </script>
00:02:04 v #1525 > > │ </div>
00:02:04 v #1526 > > │
00:02:04 v #1527 > >
00:02:04 v #1528 > > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 v #1529 > > │ ## tests
00:02:04 v #1530 > >
00:02:04 v #1531 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 v #1532 > > inl tests () =
00:02:04 v #1533 > >     testing.run_tests_log {
00:02:04 v #1534 > >         test_zeta_at_known_values_
00:02:04 v #1535 > >         test_zeta_at_2_minus2
00:02:04 v #1536 > >         test_trivial_zero_at_negative_even___
00:02:04 v #1537 > >         test_non_trivial_zero___
00:02:04 v #1538 > >         test_real_part_greater_than_one___
00:02:04 v #1539 > >         test_zeta_at_1___
00:02:04 v #1540 > >         test_symmetry_across_real_axis___
00:02:04 v #1541 > >         test_behavior_near_origin___
00:02:04 v #1542 > >         test_imaginary_axis
00:02:04 v #1543 > >         test_critical_strip
00:02:04 v #1544 > >         test_reflection_formula_for_specific_value
00:02:04 v #1545 > >         test_euler_product_formula
00:02:04 v #1546 > >     }
00:02:04 v #1547 > >
00:02:04 v #1548 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 v #1549 > > ///! _
00:02:04 v #1550 > >
00:02:04 v #1551 > > inl main (_args : array_base string) =
00:02:04 v #1552 > >     inl value = 1i32
00:02:04 v #1553 > >     console.write_line ($'$"value: {!value}"' : string)
00:02:04 v #1554 > >     0i32
00:02:04 v #1555 > >
00:02:04 v #1556 > > inl main () =
00:02:04 v #1557 > >     $'let tests () = !tests ()' : ()
00:02:04 v #1558 > >     $'let main args = !main args' : ()
00:02:04 v #1559 > 00:02:03 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 78550 }
00:02:04 v #1560 > 00:02:03 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:02:05 v #1561 > 00:02:04 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb to html
00:02:05 v #1562 > 00:02:04 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:05 v #1563 > 00:02:04 v #7 !   validate(nb)
00:02:06 v #1564 > 00:02:04 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:06 v #1565 > 00:02:04 v #9 !   return _pygments_highlight(
00:02:07 v #1566 > 00:02:05 v #10 ! [NbConvertApp] Writing 7170941 bytes to /home/runner/work/polyglot/polyglot/lib/math/math.dib.html
00:02:07 v #1567 > 00:02:05 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 889 }
00:02:07 v #1568 > 00:02:05 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 889 }
00:02:07 v #1569 > 00:02:05 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:02:07 v #1570 > 00:02:06 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:02:07 v #1571 > 00:02:06 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:02:07 v #1572 > 00:02:06 d #16 spiral.run / dib / { exit_code = 0; result_length = 79498 }
00:02:07 d #1573 runtime.execute_with_options_async / { exit_code = 0; output_length = 85217 }
00:02:07 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path math.dib --retries 5
00:02:07 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 writeDibCode / output: Spi / path: math.dib
00:00:00 d #2 parseDibCode / output: Spi / file: math.dib
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 v #28 networking.test_port_open / { port = 13806; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # math\nopen testing\nopen rust.rust_operators\nopen rust\n\n/// ## comp...gs = !main args\u0027 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/lib/math/math.spi"}} / result:
00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/lib/math/math.spi"}} / result:
00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:03 d #16 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:03 d #17 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:04 d #20 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>]
#endif
type pyo3_Python = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>]
#endif
type num_complex_Complex<'T> = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("&$0")>]
type Ref<'T> = class end
#else
type Ref<'T> = 'T
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>]
type std_string_String = class end
#else
type std_string_String = string
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::CString")>]
#endif
type std_ffi_CString = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>]
#endif
type pyo3_PyErr = class end
#...rop.emitRustExpr () v56 
    let v57 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v57 
    let v58 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v58 
    let v59 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v59 
    let v60 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v60 
    let v61 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v61 
    ()
and closure3 () (v0 : (string [])) : int32 =
    let v1 : string = $"value: {1}"
    let v2 : unit = ()
    let v3 : (unit -> unit) = closure2(v1)
    let v4 : unit = (fun () -> v3 (); v2) ()
    0
let v0 : (unit -> unit) = closure0()
let tests () = v0 ()
let v1 : ((string []) -> int32) = closure3()
let main args = v1 args
()

00:00:04 d #21 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>]
#endif
type pyo3_Python = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>]
#endif
type num_complex_Complex<'T> = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("&$0")>]
type Ref<'T> = class end
#else
type Ref<'T> = 'T
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>]
type std_string_String = class end
#else
type std_string_String = string
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::CString")>]
#endif
type std_ffi_CString = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>]
#endif
type pyo3_PyErr = class end
#...rop.emitRustExpr () v56 
    let v57 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v57 
    let v58 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v58 
    let v59 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v59 
    let v60 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v60 
    let v61 : string = "{ //"
    Fable.Core.RustInterop.emitRustExpr () v61 
    ()
and closure3 () (v0 : (string [])) : int32 =
    let v1 : string = $"value: {1}"
    let v2 : unit = ()
    let v3 : (unit -> unit) = closure2(v1)
    let v4 : unit = (fun () -> v3 (); v2) ()
    0
let v0 : (unit -> unit) = closure0()
let tests () = v0 ()
let v1 : ((string []) -> int32) = closure3()
let main args = v1 args
()

00:00:04 d #22 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:04 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: math / hash:  / code.Length: 217410
00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "/home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/lib/math/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/lib/math/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/math" } }
00:00:00 v #2 >   Determining projects to restore...
00:00:01 v #3 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #4 >   The last full restore is still up to date. Nothing left to do.
00:00:01 v #5 >   Total time taken: 0 milliseconds
00:00:01 v #6 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #7 >   Restoring /home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj
00:00:01 v #8 >   Starting restore process.
00:00:01 v #9 >   Total time taken: 0 milliseconds
00:00:02 v #10 >   Restored /home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj (in 304 ms).
00:00:12 v #11 >   math -> /home/runner/work/polyglot/polyglot/target/Builder/math/bin/Release/net9.0/linux-x64/math.dll
00:00:12 v #12 >   math -> /home/runner/work/polyglot/polyglot/lib/math/dist
00:00:12 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 662 }
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/math
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/math
polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target:  / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/math / ProjectName: math / Language: rs / Runtime:  / root: /home/runner/work/polyglot/polyglot
Fable 5.0.0-alpha.7: F# to Rust compiler (status: alpha)

Thanks to the contributor! @battermann
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target/Builder/math/math.fsproj...
Project and references (14 source files) parsed in 2481ms

Started Fable compilation...

Fable compilation finished in 8852ms

./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./target/Builder/math/math.fs(46,0): (48,3) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.rs
polyglot/lib/math/build.ps1 / path: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/math.rs
    Updating crates.io index
 Downloading crates ...
  Downloaded approx v0.5.1
  Downloaded rawpointer v0.2.1
  Downloaded pyo3-macros v0.23.3
  Downloaded pyo3-build-config v0.23.3
  Downloaded simba v0.9.0
  Downloaded safe_arch v0.7.2
  Downloaded wide v0.7.30
  Downloaded pyo3-ffi v0.23.3
  Downloaded rand_distr v0.4.3
  Downloaded pyo3-macros-backend v0.23.3
  Downloaded matrixmultiply v0.3.9
  Downloaded bytemuck v1.20.0
  Downloaded float-cmp v0.10.0
  Downloaded statrs v0.18.0
  Downloaded syn v2.0.90
  Downloaded nalgebra v0.33.2
  Downloaded libc v0.2.168
  Downloaded pyo3 v0.23.3
   Compiling autocfg v1.4.0
   Compiling libc v0.2.168
   Compiling target-lexicon v0.12.16
   Compiling proc-macro2 v1.0.92
   Compiling unicode-ident v1.0.14
   Compiling libm v0.2.11
   Compiling num-traits v0.2.19
   Compiling pyo3-build-config v0.23.3
   Compiling quote v1.0.37
   Compiling syn v2.0.90
   Compiling once_cell v1.20.2
   Compiling cfg-if v1.0.0
   Compiling typenum v1.17.0
   Compiling getrandom v0.2.15
   Compiling byteorder v1.5.0
   Compiling memchr v2.7.4
   Compiling slab v0.4.9
   Compiling rand_core v0.6.4
   Compiling futures-sink v0.3.31
   Compiling paste v1.0.15
   Compiling bytemuck v1.20.0
   Compiling futures-core v0.3.31
   Compiling safe_arch v0.7.2
   Compiling futures-channel v0.3.31
   Compiling hybrid-array v0.2.3
   Compiling pyo3-macros-backend v0.23.3
   Compiling pyo3-ffi v0.23.3
   Compiling matrixmultiply v0.3.9
   Compiling futures-io v0.3.31
   Compiling pin-project-lite v0.2.15
   Compiling pin-utils v0.1.0
   Compiling futures-task v0.3.31
   Compiling wide v0.7.30
   Compiling futures-util v0.3.31
   Compiling num-complex v0.4.6
   Compiling num-integer v0.1.46
   Compiling approx v0.5.1
   Compiling num_cpus v1.16.0
   Compiling memoffset v0.9.1
   Compiling heck v0.5.0
   Compiling rawpointer v0.2.1
   Compiling futures-executor v0.3.31
   Compiling zerocopy-derive v0.7.35
   Compiling simba v0.9.0
   Compiling num-rational v0.4.2
   Compiling zerocopy v0.7.35
   Compiling crypto-common v0.2.0-rc.1
   Compiling ppv-lite86 v0.2.20
   Compiling rand_chacha v0.3.1
   Compiling rand v0.8.5
   Compiling block-buffer v0.11.0-rc.3
   Compiling aho-corasick v1.1.3
   Compiling rand_distr v0.4.3
   Compiling pyo3 v0.23.3
   Compiling iana-time-zone v0.1.61
   Compiling const-oid v0.10.0-rc.3
   Compiling regex-syntax v0.8.5
   Compiling digest v0.11.0-pre.9
   Compiling pyo3-macros v0.23.3
   Compiling chrono v0.4.39
   Compiling nalgebra v0.33.2
   Compiling regex-automata v0.4.9
   Compiling futures v0.3.31
   Compiling uuid v1.11.0
   Compiling indoc v2.0.5
   Compiling startup v0.1.1 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust/vendored/startup)
   Compiling futures-timer v3.0.3
   Compiling cpufeatures v0.2.16
   Compiling unindent v0.2.3
   Compiling sha2 v0.11.0-pre.4
   Compiling regex v1.11.1
   Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust)
   Compiling float-cmp v0.10.0
   Compiling inline_colorization v0.1.6
   Compiling statrs v0.18.0
   Compiling math v0.0.1 (/home/runner/work/polyglot/polyglot/lib/math)
    Finished `release` profile [optimized] target(s) in 28.13s
     Running unittests math.rs (/home/runner/work/polyglot/polyglot/workspace/target/release/deps/math-69deb02515f397d4)

running 12 tests
test module_b7a9935b::Math::test_behavior_near_origin___ ... ok
test module_b7a9935b::Math::test_non_trivial_zero___ ... ok
test module_b7a9935b::Math::test_euler_product_formula ... ok
test module_b7a9935b::Math::test_critical_strip ... ok
test module_b7a9935b::Math::test_symmetry_across_real_axis___ ... ok
test module_b7a9935b::Math::test_real_part_greater_than_one___ ... ok
test module_b7a9935b::Math::test_reflection_formula_for_specific_value ... ok
test module_b7a9935b::Math::test_zeta_at_1___ ... ok
test module_b7a9935b::Math::test_zeta_at_2_minus2 ... ok
test module_b7a9935b::Math::test_zeta_at_known_values_ ... ok
test module_b7a9935b::Math::test_imaginary_axis ... ok
test module_b7a9935b::Math::test_trivial_zero_at_negative_even___ ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s

In [ ]:
{ pwsh ../apps/plot/build.ps1 } | Invoke-Block
 Downloading crates ...
  Downloaded plotters-svg v0.3.7
  Downloaded plotters-backend v0.3.7
  Downloaded plotters v0.3.7
  Downloaded serde_json v1.0.133
  Downloaded serde v1.0.216
   Compiling memchr v2.7.4
   Compiling libc v0.2.168
   Compiling typenum v1.17.0
   Compiling num-traits v0.2.19
   Compiling futures-sink v0.3.31
   Compiling futures-core v0.3.31
   Compiling futures-channel v0.3.31
   Compiling slab v0.4.9
   Compiling futures-task v0.3.31
   Compiling cfg-if v1.0.0
   Compiling futures-io v0.3.31
   Compiling pin-utils v0.1.0
   Compiling hybrid-array v0.2.3
   Compiling pin-project-lite v0.2.15
   Compiling num_cpus v1.16.0
   Compiling futures-util v0.3.31
   Compiling serde v1.0.216
   Compiling crypto-common v0.2.0-rc.1
   Compiling block-buffer v0.11.0-rc.3
   Compiling getrandom v0.2.15
   Compiling aho-corasick v1.1.3
   Compiling iana-time-zone v0.1.61
   Compiling regex-syntax v0.8.5
   Compiling plotters-backend v0.3.7
   Compiling serde_json v1.0.133
   Compiling const-oid v0.10.0-rc.3
   Compiling digest v0.11.0-pre.9
   Compiling futures-executor v0.3.31
   Compiling plotters-svg v0.3.7
   Compiling regex-automata v0.4.9
   Compiling futures v0.3.31
   Compiling chrono v0.4.39
   Compiling uuid v1.11.0
   Compiling startup v0.1.1 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust/vendored/startup)
   Compiling itoa v1.0.14
   Compiling cpufeatures v0.2.16
   Compiling ryu v1.0.18
   Compiling futures-timer v3.0.3
   Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust)
   Compiling regex v1.11.1
   Compiling sha2 v0.11.0-pre.4
   Compiling plotters v0.3.7
   Compiling inline_colorization v0.1.6
   Compiling plot v0.0.1 (/home/runner/work/polyglot/polyglot/apps/plot)
warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./networking.rs:533:33
    |
533 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                 ^                     ^
    |
    = note: `#[warn(unused_parens)]` on by default
help: remove these parentheses
    |
533 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
533 +         let v3: string = append(v0_1.l0.get().clone(), (v1_1));
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./networking.rs:533:58
    |
533 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                                          ^    ^
    |
help: remove these parentheses
    |
533 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
533 +         let v3: string = append((v0_1.l0.get().clone()), v1_1);
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:708:33
    |
708 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                 ^                     ^
    |
help: remove these parentheses
    |
708 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
708 +         let v3: string = append(v0_1.l0.get().clone(), (v1_1));
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:708:58
    |
708 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                                          ^    ^
    |
help: remove these parentheses
    |
708 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
708 +         let v3: string = append((v0_1.l0.get().clone()), v1_1);
    |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1019:62
     |
1019 |             (Runtime::method30(v0_1, (v1_1) + 1_i32))(append((v2_1), string(" ")))
     |                                                              ^    ^
     |
help: remove these parentheses
     |
1019 -             (Runtime::method30(v0_1, (v1_1) + 1_i32))(append((v2_1), string(" ")))
1019 +             (Runtime::method30(v0_1, (v1_1) + 1_i32))(append(v2_1, string(" ")))
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1109:25
     |
1109 |                         ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))),
     |                         ^                                                    ^
     |
help: remove these parentheses
     |
1109 -                         ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))),
1109 +                         (Runtime::method30((v3) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1197:25
     |
1197 |                         ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))),
     |                         ^                                                    ^
     |
help: remove these parentheses
     |
1197 -                         ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))),
1197 +                         (Runtime::method30((v3) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1378:36
     |
1378 | ...                   append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));
     |                              ^                  ^
     |
help: remove these parentheses
     |
1378 -                             append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));
1378 +                             append(v0_1.get().clone(), (ofChar(v121_0_0.clone())));
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1378:58
     |
1378 | ...                   append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));
     |                                                    ^                        ^
     |
help: remove these parentheses
     |
1378 -                             append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));
1378 +                             append((v0_1.get().clone()), ofChar(v121_0_0.clone()));
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1586:36
     |
1586 | ...                   append((v0_1.get().clone()), (ofChar(v127_0_0.clone())));
     |                              ^                  ^
     |
help: remove these parentheses
     |
1586 -                             append((v0_1.get().clone()), (ofChar(v127_0_0.clone())));
1586 +                             append(v0_1.get().clone(), (ofChar(v127_0_0.clone())));
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1586:58
     |
1586 | ...                   append((v0_1.get().clone()), (ofChar(v127_0_0.clone())));
     |                                                    ^                        ^
     |
help: remove these parentheses
     |
1586 -                             append((v0_1.get().clone()), (ofChar(v127_0_0.clone())));
1586 +                             append((v0_1.get().clone()), ofChar(v127_0_0.clone()));
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1696:36
     |
1696 | ...                   append((v0_1.get().clone()), (ofChar(v79_0_0.clone())));
     |                              ^                  ^
     |
help: remove these parentheses
     |
1696 -                             append((v0_1.get().clone()), (ofChar(v79_0_0.clone())));
1696 +                             append(v0_1.get().clone(), (ofChar(v79_0_0.clone())));
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1696:58
     |
1696 | ...                   append((v0_1.get().clone()), (ofChar(v79_0_0.clone())));
     |                                                    ^                       ^
     |
help: remove these parentheses
     |
1696 -                             append((v0_1.get().clone()), (ofChar(v79_0_0.clone())));
1696 +                             append((v0_1.get().clone()), ofChar(v79_0_0.clone()));
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:2154:37
     |
2154 | ...                   ((Runtime::method30((v419) - 1_i32, 0_i32))(string(""))),
     |                       ^                                                      ^
     |
help: remove these parentheses
     |
2154 -                                     ((Runtime::method30((v419) - 1_i32, 0_i32))(string(""))),
2154 +                                     (Runtime::method30((v419) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3183:36
     |
3183 | ...                   append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));
     |                              ^                  ^
     |
help: remove these parentheses
     |
3183 -                             append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));
3183 +                             append(v0_1.get().clone(), (ofChar(v121_0_0.clone())));
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3183:58
     |
3183 | ...                   append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));
     |                                                    ^                        ^
     |
help: remove these parentheses
     |
3183 -                             append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));
3183 +                             append((v0_1.get().clone()), ofChar(v121_0_0.clone()));
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3329:25
     |
3329 |                         ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))),
     |                         ^                                                    ^
     |
help: remove these parentheses
     |
3329 -                         ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))),
3329 +                         (Runtime::method30((v3) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3396:28
     |
3396 |                     append((ofChar('\\')), (ofChar(v210_0_0.clone()))),
     |                            ^            ^
     |
help: remove these parentheses
     |
3396 -                     append((ofChar('\\')), (ofChar(v210_0_0.clone()))),
3396 +                     append(ofChar('\\'), (ofChar(v210_0_0.clone()))),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3396:44
     |
3396 |                     append((ofChar('\\')), (ofChar(v210_0_0.clone()))),
     |                                            ^                        ^
     |
help: remove these parentheses
     |
3396 -                     append((ofChar('\\')), (ofChar(v210_0_0.clone()))),
3396 +                     append((ofChar('\\')), ofChar(v210_0_0.clone())),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3486:25
     |
3486 |                         ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))),
     |                         ^                                                    ^
     |
help: remove these parentheses
     |
3486 -                         ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))),
3486 +                         (Runtime::method30((v3) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3553:28
     |
3553 |                     append((ofChar('`')), (ofChar(v210_0_0.clone()))),
     |                            ^           ^
     |
help: remove these parentheses
     |
3553 -                     append((ofChar('`')), (ofChar(v210_0_0.clone()))),
3553 +                     append(ofChar('`'), (ofChar(v210_0_0.clone()))),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3553:43
     |
3553 |                     append((ofChar('`')), (ofChar(v210_0_0.clone()))),
     |                                           ^                        ^
     |
help: remove these parentheses
     |
3553 -                     append((ofChar('`')), (ofChar(v210_0_0.clone()))),
3553 +                     append((ofChar('`')), ofChar(v210_0_0.clone())),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:4101:96
     |
4101 | ...                   append(((Runtime::method30((v4.get().clone())
     |                              ^
...
4104 | ...                                              0_i32))(string(""))),
     |                                                                     ^
     |
help: remove these parentheses
     |
4101 ~                                                                                         append((Runtime::method30((v4.get().clone())
4102 |                                                                                                                        -
4103 |                                                                                                                        1_i32,
4104 ~                                                                                                                    0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:4249:116
     |
4249 | ...                   append(((Runtime::method30((v307)
     |                              ^
...
4252 | ...                                              0_i32))(string(""))),
     |                                                                     ^
     |
help: remove these parentheses
     |
4249 ~                                                                                                             append((Runtime::method30((v307)
4250 |                                                                                                                                            -
4251 |                                                                                                                                            1_i32,
4252 ~                                                                                                                                        0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./trace.rs:480:33
    |
480 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                 ^                     ^
    |
help: remove these parentheses
    |
480 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
480 +         let v3: string = append(v0_1.l0.get().clone(), (v1_1));
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./trace.rs:480:58
    |
480 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                                          ^    ^
    |
help: remove these parentheses
    |
480 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
480 +         let v3: string = append((v0_1.l0.get().clone()), v1_1);
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:759:33
    |
759 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                 ^                     ^
    |
help: remove these parentheses
    |
759 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
759 +         let v3: string = append(v0_1.l0.get().clone(), (v1_1));
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:759:58
    |
759 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                                          ^    ^
    |
help: remove these parentheses
    |
759 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
759 +         let v3: string = append((v0_1.l0.get().clone()), v1_1);
    |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:2446:81
     |
2446 |             (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))
     |                                                                                 ^  ^
     |
help: remove these parentheses
     |
2446 -             (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))
2446 +             (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3, (v1_1)))
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:2446:87
     |
2446 |             (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))
     |                                                                                       ^    ^
     |
help: remove these parentheses
     |
2446 -             (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))
2446 +             (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), v1_1))
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:2460:13
     |
2460 |             ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(""))),
     |             ^                                                                                  ^
     |
help: remove these parentheses
     |
2460 -             ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(""))),
2460 +             (File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:2461:13
     |
2461 |             (v0_1),
     |             ^    ^
     |
help: remove these parentheses
     |
2461 -             (v0_1),
2461 +             v0_1,
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:3298:25
     |
3298 |                         (concat(new_array(&[
     |                         ^
...
3305 |                         ]))),
     |                            ^
     |
help: remove these parentheses
     |
3298 ~                         concat(new_array(&[
3299 |                             string("file_system.find_parent / No parent for "),
...
3304 |                             },
3305 ~                         ])),
     |

warning: unnecessary parentheses around function argument
    --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:3342:21
     |
3342 |                     (concat(new_array(&[
     |                     ^
...
3345 |                     ]))),
     |                        ^
     |
help: remove these parentheses
     |
3342 ~                     concat(new_array(&[
3343 |                         string("file_system.find_parent / No parent for "),
3344 |                         if v2_1 { string("file") } else { string("dir") },
3345 ~                     ])),
     |

warning: unnecessary parentheses around function argument
  --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:94:70
   |
94 |             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))
   |                                                                      ^    ^
   |
help: remove these parentheses
   |
94 -             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))
94 +             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3_1, (v1_1)))
   |

warning: unnecessary parentheses around function argument
  --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:94:78
   |
94 |             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))
   |                                                                              ^    ^
   |
help: remove these parentheses
   |
94 -             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))
94 +             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), v1_1))
   |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:108:13
    |
108 |             ((Sm::method0((v0_1) - (length(v2_1.clone())), v4_1, 0_i32))(string(""))),
    |             ^                                                                       ^
    |
help: remove these parentheses
    |
108 -             ((Sm::method0((v0_1) - (length(v2_1.clone())), v4_1, 0_i32))(string(""))),
108 +             (Sm::method0((v0_1) - (length(v2_1.clone())), v4_1, 0_i32))(string("")),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:109:13
    |
109 |             (v2_1),
    |             ^    ^
    |
help: remove these parentheses
    |
109 -             (v2_1),
109 +             v2_1,
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:128:13
    |
128 |             (v2_1.clone()),
    |             ^            ^
    |
help: remove these parentheses
    |
128 -             (v2_1.clone()),
128 +             v2_1.clone(),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:129:13
    |
129 |             ((Sm::method0((v0_1) - (length(v2_1)), v4_1, 0_i32))(string(""))),
    |             ^                                                               ^
    |
help: remove these parentheses
    |
129 -             ((Sm::method0((v0_1) - (length(v2_1)), v4_1, 0_i32))(string(""))),
129 +             (Sm::method0((v0_1) - (length(v2_1)), v4_1, 0_i32))(string("")),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:345:17
    |
345 |                 (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))),
    |                 ^                                                 ^
    |
help: remove these parentheses
    |
345 -                 (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))),
345 +                 getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32)),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:17
    |
410 |                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
    |                 ^                                                                    ^
    |
help: remove these parentheses
    |
410 -                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
410 +                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue)),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:25
    |
410 |                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
    |                         ^                                            ^
    |
help: remove these parentheses
    |
410 -                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
410 +                 (append(append((v1_1[v9_1].clone()), (matchValue_1)), (matchValue))),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:73
    |
410 |                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
    |                                                                         ^          ^
    |
help: remove these parentheses
    |
410 -                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
410 +                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), matchValue)),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:33
    |
410 |                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
    |                                 ^                  ^
    |
help: remove these parentheses
    |
410 -                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
410 +                 (append((append(v1_1[v9_1].clone(), (matchValue_1))), (matchValue))),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:55
    |
410 |                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
    |                                                       ^            ^
    |
help: remove these parentheses
    |
410 -                 (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),
410 +                 (append((append((v1_1[v9_1].clone()), matchValue_1)), (matchValue))),
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./crypto.rs:626:33
    |
626 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                 ^                     ^
    |
help: remove these parentheses
    |
626 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
626 +         let v3: string = append(v0_1.l0.get().clone(), (v1_1));
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./crypto.rs:626:58
    |
626 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                                          ^    ^
    |
help: remove these parentheses
    |
626 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
626 +         let v3: string = append((v0_1.l0.get().clone()), v1_1);
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./common.rs:558:33
    |
558 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                 ^                     ^
    |
help: remove these parentheses
    |
558 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
558 +         let v3: string = append(v0_1.l0.get().clone(), (v1_1));
    |

warning: unnecessary parentheses around function argument
   --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./common.rs:558:58
    |
558 |         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                                          ^    ^
    |
help: remove these parentheses
    |
558 -         let v3: string = append((v0_1.l0.get().clone()), (v1_1));
558 +         let v3: string = append((v0_1.l0.get().clone()), v1_1);
    |

warning: `plot` (lib) generated 50 warnings (run `cargo fix --lib -p plot` to apply 50 suggestions)
    Finished `release` profile [optimized] target(s) in 22.12s
In [ ]:
{ pwsh ../apps/perf/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Perf.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Perf.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Perf.dib", "--retries", "3"])) }
00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:02 v #10 > >
00:00:02 v #11 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #12 > > │ # Perf (Polyglot)
00:00:16 v #13 > >
00:00:16 v #14 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 v #15 > > //// test
00:00:16 v #16 > >
00:00:16 v #17 > > open testing
00:00:16 v #18 > > open benchmark
00:00:20 v #19 > >
00:00:20 v #20 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 v #21 > > #if !INTERACTIVE
00:00:20 v #22 > > open Lib
00:00:20 v #23 > > #endif
00:00:20 v #24 > >
00:00:20 v #25 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:20 v #26 > > │ ## TestCaseResult
00:00:20 v #27 > >
00:00:20 v #28 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 v #29 > > type TestCaseResult =
00:00:20 v #30 > >     {
00:00:20 v #31 > >         Input: string
00:00:20 v #32 > >         Expected: string
00:00:20 v #33 > >         Result: string
00:00:20 v #34 > >         TimeList: int64 list
00:00:20 v #35 > >     }
00:00:20 v #36 > >
00:00:20 v #37 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:20 v #38 > > │ ## run
00:00:20 v #39 > >
00:00:20 v #40 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 v #41 > > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input,
00:00:20 v #42 > > expected) =
00:00:20 v #43 > >     let inputStr =
00:00:20 v #44 > >         match box input with
00:00:20 v #45 > >         | :? System.Collections.ICollection as input ->
00:00:20 v #46 > >             System.Linq.Enumerable.Cast<obj> input
00:00:20 v #47 > >             |> Seq.map string
00:00:20 v #48 > >             |> SpiralSm.concat ","
00:00:20 v #49 > >         | _ -> input.ToString ()
00:00:20 v #50 > >
00:00:20 v #51 > >     printfn ""
00:00:20 v #52 > >     printfn $"Solution: {inputStr}  "
00:00:20 v #53 > >
00:00:20 v #54 > >     let performanceInvoke (fn: unit -> 'T) =
00:00:20 v #55 > >         GC.Collect ()
00:00:20 v #56 > >         let stopwatch = System.Diagnostics.Stopwatch ()
00:00:20 v #57 > >         stopwatch.Start ()
00:00:20 v #58 > >         let time1 = stopwatch.ElapsedMilliseconds
00:00:20 v #59 > >
00:00:20 v #60 > >         let result =
00:00:20 v #61 > >             [[| 0 .. count |]]
00:00:20 v #62 > >             |> Array.Parallel.map (fun _ ->
00:00:20 v #63 > >                 fn ()
00:00:20 v #64 > >             )
00:00:20 v #65 > >             |> Array.last
00:00:20 v #66 > >
00:00:20 v #67 > >         let time2 = stopwatch.ElapsedMilliseconds - time1
00:00:20 v #68 > >
00:00:20 v #69 > >         result, time2
00:00:20 v #70 > >
00:00:20 v #71 > >     let resultsWithTime =
00:00:20 v #72 > >         solutions
00:00:20 v #73 > >         |> List.mapi (fun i (testName, solution) ->
00:00:20 v #74 > >             let result, time = performanceInvoke (fun () -> solution input)
00:00:20 v #75 > >             printfn $"Test case %d{i + 1}. %s{testName}. Time: %A{time}  "
00:00:20 v #76 > >             result, time
00:00:20 v #77 > >         )
00:00:20 v #78 > >
00:00:20 v #79 > >
00:00:20 v #80 > >     match resultsWithTime |> List.map fst with
00:00:20 v #81 > >     | ([[]] | [[ _ ]]) -> ()
00:00:20 v #82 > >     | (head :: tail) when tail |> List.forall ((=) head) -> ()
00:00:20 v #83 > >     | results -> failwithf $"Challenge error: %A{results}"
00:00:20 v #84 > >
00:00:20 v #85 > >     {
00:00:20 v #86 > >         Input = inputStr
00:00:20 v #87 > >         Expected = expected.ToString ()
00:00:20 v #88 > >         Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString()
00:00:20 v #89 > >         TimeList = resultsWithTime |> List.map snd
00:00:20 v #90 > >     }
00:00:20 v #91 > >
00:00:20 v #92 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:20 v #93 > > │ ## runAll
00:00:20 v #94 > >
00:00:20 v #95 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 v #96 > > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list)
00:00:20 v #97 > > testCases =
00:00:20 v #98 > >     printfn ""
00:00:20 v #99 > >     printfn ""
00:00:20 v #100 > >     printfn $"Test: {testName}"
00:00:20 v #101 > >     testCases
00:00:20 v #102 > >     |> Seq.map (run count solutions)
00:00:20 v #103 > >     |> Seq.toList
00:00:20 v #104 > >
00:00:20 v #105 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:20 v #106 > > │ ## sortResultList
00:00:20 v #107 > >
00:00:20 v #108 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 v #109 > > let sortResultList resultList =
00:00:20 v #110 > >     let table =
00:00:20 v #111 > >         let rows =
00:00:20 v #112 > >             resultList
00:00:20 v #113 > >             |> List.map (fun result ->
00:00:20 v #114 > >                 let best =
00:00:20 v #115 > >                     result.TimeList
00:00:20 v #116 > >                     |> List.mapi (fun i time ->
00:00:20 v #117 > >                         i + 1, time
00:00:20 v #118 > >                     )
00:00:20 v #119 > >                     |> List.sortBy snd
00:00:20 v #120 > >                     |> List.head
00:00:20 v #121 > >                     |> _.ToString()
00:00:20 v #122 > >                 let row =
00:00:20 v #123 > >                     [[
00:00:20 v #124 > >                         result.Input
00:00:20 v #125 > >                         result.Expected
00:00:20 v #126 > >                         result.Result
00:00:20 v #127 > >                         best
00:00:20 v #128 > >                     ]]
00:00:20 v #129 > >                 let color =
00:00:20 v #130 > >                     match result.Expected = result.Result with
00:00:20 v #131 > >                     | true -> Some ConsoleColor.DarkGreen
00:00:20 v #132 > >                     | false -> Some ConsoleColor.DarkRed
00:00:20 v #133 > >                 row, color
00:00:20 v #134 > >             )
00:00:20 v #135 > >         let header =
00:00:20 v #136 > >             [[
00:00:20 v #137 > >                 [[
00:00:20 v #138 > >                     "Input"
00:00:20 v #139 > >                     "Expected"
00:00:20 v #140 > >                     "Result"
00:00:20 v #141 > >                     "Best"
00:00:20 v #142 > >                 ]]
00:00:20 v #143 > >                 [[
00:00:20 v #144 > >                     "---"
00:00:20 v #145 > >                     "---"
00:00:20 v #146 > >                     "---"
00:00:20 v #147 > >                     "---"
00:00:20 v #148 > >                 ]]
00:00:20 v #149 > >             ]]
00:00:20 v #150 > >             |> List.map (fun row -> row, None)
00:00:20 v #151 > >         header @ rows
00:00:20 v #152 > >
00:00:20 v #153 > >     let formattedTable =
00:00:20 v #154 > >         let lengthMap =
00:00:20 v #155 > >             table
00:00:20 v #156 > >             |> List.map fst
00:00:20 v #157 > >             |> List.transpose
00:00:20 v #158 > >             |> List.map (fun column ->
00:00:20 v #159 > >                 column
00:00:20 v #160 > >                 |> List.map String.length
00:00:20 v #161 > >                 |> List.sortDescending
00:00:20 v #162 > >                 |> List.tryHead
00:00:20 v #163 > >                 |> Option.defaultValue 0
00:00:20 v #164 > >             )
00:00:20 v #165 > >             |> List.indexed
00:00:20 v #166 > >             |> Map.ofList
00:00:20 v #167 > >         table
00:00:20 v #168 > >         |> List.map (fun (row, color) ->
00:00:20 v #169 > >             let newRow =
00:00:20 v #170 > >                 row
00:00:20 v #171 > >                 |> List.mapi (fun i cell ->
00:00:20 v #172 > >                     cell.PadRight lengthMap.[[i]]
00:00:20 v #173 > >                 )
00:00:20 v #174 > >             newRow, color
00:00:20 v #175 > >         )
00:00:20 v #176 > >
00:00:20 v #177 > >     printfn ""
00:00:20 v #178 > >     formattedTable
00:00:20 v #179 > >     |> List.iter (fun (row, color) ->
00:00:20 v #180 > >         match color with
00:00:20 v #181 > >         | Some color -> Console.ForegroundColor <- color
00:00:20 v #182 > >         | None -> Console.ResetColor ()
00:00:20 v #183 > >
00:00:20 v #184 > >         printfn "%s" (String.Join ("\t| ", row))
00:00:20 v #185 > >
00:00:20 v #186 > >         Console.ResetColor ()
00:00:20 v #187 > >     )
00:00:20 v #188 > >
00:00:20 v #189 > >     let averages =
00:00:20 v #190 > >         resultList
00:00:20 v #191 > >         |> List.map (fun result -> result.TimeList |> List.map float)
00:00:20 v #192 > >         |> List.transpose
00:00:20 v #193 > >         |> List.map List.average
00:00:20 v #194 > >         |> List.map int64
00:00:20 v #195 > >         |> List.indexed
00:00:20 v #196 > >
00:00:20 v #197 > >     printfn ""
00:00:20 v #198 > >     printfn "Average Ranking  "
00:00:20 v #199 > >     averages
00:00:20 v #200 > >     |> List.sortBy snd
00:00:20 v #201 > >     |> List.iter (fun (i, avg) ->
00:00:20 v #202 > >         printfn $"Test case %d{i + 1}. Average Time: %A{avg}  "
00:00:20 v #203 > >     )
00:00:20 v #204 > >
00:00:20 v #205 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 v #206 > > let mutable _count =
00:00:20 v #207 > >     if ("CI" |> System.Environment.GetEnvironmentVariable |> fun x -> $"%A{x}")
00:00:20 v #208 > > <> "<null>"
00:00:20 v #209 > >     then 2000000
00:00:20 v #210 > >     else 2000
00:00:20 v #211 > >
00:00:20 v #212 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:20 v #213 > > inl is_fast () =
00:00:20 v #214 > >     false
00:00:20 v #215 > >
00:00:20 v #216 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:20 v #217 > > │ ## empty3Tests
00:00:20 v #218 > >
00:00:20 v #219 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:20 v #220 > > │ Test: Empty3
00:00:20 v #221 > > │
00:00:20 v #222 > > │ Solution: (a, a)
00:00:20 v #223 > > │ Test case 1. A. Time: 91L
00:00:20 v #224 > > │
00:00:20 v #225 > > │ Solution: (a, a)
00:00:20 v #226 > > │ Test case 1. A. Time: 56L
00:00:20 v #227 > > │
00:00:20 v #228 > > │ Input  | Expected      | Result | Best
00:00:20 v #229 > > │ ---    | ---           | ---    | ---
00:00:20 v #230 > > │ (a, a) | a             | a      | (1, 91)
00:00:20 v #231 > > │ (a, a) | a             | a      | (1, 56)
00:00:20 v #232 > > │
00:00:20 v #233 > > │ Averages
00:00:20 v #234 > > │ Test case 1. Average Time: 73L
00:00:20 v #235 > > │
00:00:20 v #236 > > │ Ranking
00:00:20 v #237 > > │ Test case 1. Average Time: 73L
00:00:20 v #238 > >
00:00:20 v #239 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 v #240 > > //// test
00:00:20 v #241 > >
00:00:20 v #242 > > let solutions = [[
00:00:20 v #243 > >     "A",
00:00:20 v #244 > >     fun (a, _b) ->
00:00:20 v #245 > >         a
00:00:20 v #246 > > ]]
00:00:20 v #247 > > let testCases = seq {
00:00:20 v #248 > >     ("a", "a"), "a"
00:00:20 v #249 > >     ("a", "a"), "a"
00:00:20 v #250 > > }
00:00:20 v #251 > > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases
00:00:20 v #252 > > empty3Tests
00:00:20 v #253 > > |> sortResultList
00:00:21 v #254 > >
00:00:21 v #255 > > ── [ 518.36ms - stdout ] ───────────────────────────────────────────────────────
00:00:21 v #256 > > │
00:00:21 v #257 > > │
00:00:21 v #258 > > │ Test: empty3Tests
00:00:21 v #259 > > │
00:00:21 v #260 > > │ Solution: (a, a)
00:00:21 v #261 > > │ Test case 1. A. Time: 41L
00:00:21 v #262 > > │
00:00:21 v #263 > > │ Solution: (a, a)
00:00:21 v #264 > > │ Test case 1. A. Time: 34L
00:00:21 v #265 > > │
00:00:21 v #266 > > │ Input 	| Expected	| Result	| Best
00:00:21 v #267 > > │ ---   	| ---     	| ---   	| ---
00:00:21 v #268 > > │ (a, a)	| a       	| a     	| (1, 41)
00:00:21 v #269 > > │ (a, a)	| a       	| a     	| (1, 34)
00:00:21 v #270 > > │
00:00:21 v #271 > > │ Average Ranking
00:00:21 v #272 > > │ Test case 1. Average Time: 37L
00:00:21 v #273 > > │
00:00:21 v #274 > >
00:00:21 v #275 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 v #276 > > │ ## empty2Tests
00:00:21 v #277 > >
00:00:21 v #278 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 v #279 > > │ Test: Empty2
00:00:21 v #280 > > │
00:00:21 v #281 > > │ Solution: (a, a)
00:00:21 v #282 > > │ Test case 1. A. Time: 59L
00:00:21 v #283 > > │
00:00:21 v #284 > > │ Solution: (a, a)
00:00:21 v #285 > > │ Test case 1. A. Time: 53L
00:00:21 v #286 > > │
00:00:21 v #287 > > │ Input   | Expected        | Result  | Best
00:00:21 v #288 > > │ ---     | ---             | ---     | ---
00:00:21 v #289 > > │ (a, a)  | a               | a       | (1, 59)
00:00:21 v #290 > > │ (a, a)  | a               | a       | (1, 53)
00:00:21 v #291 > > │
00:00:21 v #292 > > │ Averages
00:00:21 v #293 > > │ Test case 1. Average Time: 56L
00:00:21 v #294 > > │
00:00:21 v #295 > > │ Ranking
00:00:21 v #296 > > │ Test case 1. Average Time: 56L
00:00:21 v #297 > >
00:00:21 v #298 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:21 v #299 > > //// test
00:00:21 v #300 > >
00:00:21 v #301 > > let solutions = [[
00:00:21 v #302 > >     "A",
00:00:21 v #303 > >     fun (a, _b) ->
00:00:21 v #304 > >         a
00:00:21 v #305 > > ]]
00:00:21 v #306 > > let testCases = seq {
00:00:21 v #307 > >     ("a", "a"), "a"
00:00:21 v #308 > >     ("a", "a"), "a"
00:00:21 v #309 > > }
00:00:21 v #310 > > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases
00:00:21 v #311 > > empty2Tests
00:00:21 v #312 > > |> sortResultList
00:00:21 v #313 > >
00:00:21 v #314 > > ── [ 521.91ms - stdout ] ───────────────────────────────────────────────────────
00:00:21 v #315 > > │
00:00:21 v #316 > > │
00:00:21 v #317 > > │ Test: empty2Tests
00:00:21 v #318 > > │
00:00:21 v #319 > > │ Solution: (a, a)
00:00:21 v #320 > > │ Test case 1. A. Time: 30L
00:00:21 v #321 > > │
00:00:21 v #322 > > │ Solution: (a, a)
00:00:21 v #323 > > │ Test case 1. A. Time: 43L
00:00:21 v #324 > > │
00:00:21 v #325 > > │ Input 	| Expected	| Result	| Best
00:00:21 v #326 > > │ ---   	| ---     	| ---   	| ---
00:00:21 v #327 > > │ (a, a)	| a       	| a     	| (1, 30)
00:00:21 v #328 > > │ (a, a)	| a       	| a     	| (1, 43)
00:00:21 v #329 > > │
00:00:21 v #330 > > │ Average Ranking
00:00:21 v #331 > > │ Test case 1. Average Time: 36L
00:00:21 v #332 > > │
00:00:21 v #333 > >
00:00:21 v #334 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 v #335 > > │ ## emptyTests
00:00:21 v #336 > >
00:00:21 v #337 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 v #338 > > │ Test: Empty
00:00:21 v #339 > > │
00:00:21 v #340 > > │ Solution: 0
00:00:21 v #341 > > │ Test case 1. A. Time: 61L
00:00:21 v #342 > > │
00:00:21 v #343 > > │ Solution: 2
00:00:21 v #344 > > │ Test case 1. A. Time: 62L
00:00:21 v #345 > > │
00:00:21 v #346 > > │ Solution: 5
00:00:21 v #347 > > │ Test case 1. A. Time: 70L
00:00:21 v #348 > > │
00:00:21 v #349 > > │ Input   | Expected        | Result  | Best
00:00:21 v #350 > > │ ---     | ---             | ---     | ---
00:00:21 v #351 > > │ 0       | 0               | 0       | (1, 61)
00:00:21 v #352 > > │ 2       | 2               | 2       | (1, 62)
00:00:21 v #353 > > │ 5       | 5               | 5       | (1, 70)
00:00:21 v #354 > > │
00:00:21 v #355 > > │ Averages
00:00:21 v #356 > > │ Test case 1. Average Time: 64L
00:00:21 v #357 > > │
00:00:21 v #358 > > │ Ranking
00:00:21 v #359 > > │ Test case 1. Average Time: 64L
00:00:21 v #360 > >
00:00:21 v #361 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:21 v #362 > > //// test
00:00:21 v #363 > >
00:00:21 v #364 > > let solutions = [[
00:00:21 v #365 > >     "A",
00:00:21 v #366 > >     fun n ->
00:00:21 v #367 > >         n + 0
00:00:21 v #368 > > ]]
00:00:21 v #369 > > let testCases = seq {
00:00:21 v #370 > >     0, 0
00:00:21 v #371 > >     2, 2
00:00:21 v #372 > >     5, 5
00:00:22 v #373 > > }
00:00:22 v #374 > > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases
00:00:22 v #375 > > emptyTests
00:00:22 v #376 > > |> sortResultList
00:00:22 v #377 > >
00:00:22 v #378 > > ── [ 714.83ms - stdout ] ───────────────────────────────────────────────────────
00:00:22 v #379 > > │
00:00:22 v #380 > > │
00:00:22 v #381 > > │ Test: emptyTests
00:00:22 v #382 > > │
00:00:22 v #383 > > │ Solution: 0
00:00:22 v #384 > > │ Test case 1. A. Time: 28L
00:00:22 v #385 > > │
00:00:22 v #386 > > │ Solution: 2
00:00:22 v #387 > > │ Test case 1. A. Time: 38L
00:00:22 v #388 > > │
00:00:22 v #389 > > │ Solution: 5
00:00:22 v #390 > > │ Test case 1. A. Time: 29L
00:00:22 v #391 > > │
00:00:22 v #392 > > │ Input	| Expected	| Result	| Best
00:00:22 v #393 > > │ ---  	| ---     	| ---   	| ---
00:00:22 v #394 > > │ 0    	| 0       	| 0     	| (1, 28)
00:00:22 v #395 > > │ 2    	| 2       	| 2     	| (1, 38)
00:00:22 v #396 > > │ 5    	| 5       	| 5     	| (1, 29)
00:00:22 v #397 > > │
00:00:22 v #398 > > │ Average Ranking
00:00:22 v #399 > > │ Test case 1. Average Time: 31L
00:00:22 v #400 > > │
00:00:22 v #401 > >
00:00:22 v #402 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 v #403 > > │ ## uniqueLettersTests
00:00:22 v #404 > >
00:00:22 v #405 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 v #406 > > │ Test: UniqueLetters
00:00:22 v #407 > > │
00:00:22 v #408 > > │ Solution: abc
00:00:22 v #409 > > │ Test case 1. A. Time: 1512L
00:00:22 v #410 > > │ Test case 2. B. Time: 1947L
00:00:22 v #411 > > │ Test case 3. C. Time: 2023L
00:00:22 v #412 > > │ Test case 4. D. Time: 1358L
00:00:22 v #413 > > │ Test case 5. E. Time: 1321L
00:00:22 v #414 > > │ Test case 6. F. Time: 1346L
00:00:22 v #415 > > │ Test case 7. G. Time: 1304L
00:00:22 v #416 > > │ Test case 8. H. Time: 1383L
00:00:22 v #417 > > │ Test case 9. I. Time: 1495L
00:00:22 v #418 > > │ Test case 10. J. Time: 1245L
00:00:22 v #419 > > │ Test case 11. K. Time: 1219L
00:00:22 v #420 > > │
00:00:22 v #421 > > │ Solution: accabb
00:00:22 v #422 > > │ Test case 1. A. Time: 1648L
00:00:22 v #423 > > │ Test case 2. B. Time: 2061L
00:00:22 v #424 > > │ Test case 3. C. Time: 2413L
00:00:22 v #425 > > │ Test case 4. D. Time: 1561L
00:00:22 v #426 > > │ Test case 5. E. Time: 1593L
00:00:22 v #427 > > │ Test case 6. F. Time: 1518L
00:00:22 v #428 > > │ Test case 7. G. Time: 1415L
00:00:22 v #429 > > │ Test case 8. H. Time: 1510L
00:00:22 v #430 > > │ Test case 9. I. Time: 1445L
00:00:22 v #431 > > │ Test case 10. J. Time: 1636L
00:00:22 v #432 > > │ Test case 11. K. Time: 1317L
00:00:22 v #433 > > │
00:00:22 v #434 > > │ Solution: pprrqqpp
00:00:22 v #435 > > │ Test case 1. A. Time: 2255L
00:00:22 v #436 > > │ Test case 2. B. Time: 2408L
00:00:22 v #437 > > │ Test case 3. C. Time: 2393L
00:00:22 v #438 > > │ Test case 4. D. Time: 1675L
00:00:22 v #439 > > │ Test case 5. E. Time: 1911L
00:00:22 v #440 > > │ Test case 6. F. Time: 2126L
00:00:22 v #441 > > │ Test case 7. G. Time: 1504L
00:00:22 v #442 > > │ Test case 8. H. Time: 1715L
00:00:22 v #443 > > │ Test case 9. I. Time: 1537L
00:00:22 v #444 > > │ Test case 10. J. Time: 1522L
00:00:22 v #445 > > │ Test case 11. K. Time: 1322L
00:00:22 v #446 > > │
00:00:22 v #447 > > │ Solution:
00:00:22 v #448 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb
00:00:22 v #449 > > │ Test case 1. A. Time: 13073L
00:00:22 v #450 > > │ Test case 2. B. Time: 11519L
00:00:22 v #451 > > │ Test case 3. C. Time: 8373L
00:00:22 v #452 > > │ Test case 4. D. Time: 5860L
00:00:22 v #453 > > │ Test case 5. E. Time: 6490L
00:00:22 v #454 > > │ Test case 6. F. Time: 6325L
00:00:22 v #455 > > │ Test case 7. G. Time: 5799L
00:00:22 v #456 > > │ Test case 8. H. Time: 7099L
00:00:22 v #457 > > │ Test case 9. I. Time: 6133L
00:00:22 v #458 > > │ Test case 10. J. Time: 5993L
00:00:22 v #459 > > │ Test case 11. K. Time: 2040L
00:00:22 v #460 > > │
00:00:22 v #461 > > │ Input
00:00:22 v #462 > > | Expected        | Result  | Best
00:00:22 v #463 > > │ ---
00:00:22 v #464 > > | ---             | ---     | ---
00:00:22 v #465 > > │ abc
00:00:22 v #466 > > | abc             | abc     | (11, 1219)
00:00:22 v #467 > > │ accabb
00:00:22 v #468 > > | acb             | acb     | (11, 1317)
00:00:22 v #469 > > │ pprrqqpp
00:00:22 v #470 > > | prq             | prq     | (11, 1322)
00:00:22 v #471 > > │
00:00:22 v #472 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb
00:00:22 v #473 > > | acb             | acb     | (11, 2040)
00:00:22 v #474 > > │
00:00:22 v #475 > > │ Averages
00:00:22 v #476 > > │ Test case 1. Average Time: 4622L
00:00:22 v #477 > > │ Test case 2. Average Time: 4483L
00:00:22 v #478 > > │ Test case 3. Average Time: 3800L
00:00:22 v #479 > > │ Test case 4. Average Time: 2613L
00:00:22 v #480 > > │ Test case 5. Average Time: 2828L
00:00:22 v #481 > > │ Test case 6. Average Time: 2828L
00:00:22 v #482 > > │ Test case 7. Average Time: 2505L
00:00:22 v #483 > > │ Test case 8. Average Time: 2926L
00:00:22 v #484 > > │ Test case 9. Average Time: 2652L
00:00:22 v #485 > > │ Test case 10. Average Time: 2599L
00:00:22 v #486 > > │ Test case 11. Average Time: 1474L
00:00:22 v #487 > > │
00:00:22 v #488 > > │ Ranking
00:00:22 v #489 > > │ Test case 1. Average Time: 4622L
00:00:22 v #490 > > │ Test case 2. Average Time: 4483L
00:00:22 v #491 > > │ Test case 3. Average Time: 3800L
00:00:22 v #492 > > │ Test case 8. Average Time: 2926L
00:00:22 v #493 > > │ Test case 5. Average Time: 2828L
00:00:22 v #494 > > │ Test case 6. Average Time: 2828L
00:00:22 v #495 > > │ Test case 9. Average Time: 2652L
00:00:22 v #496 > > │ Test case 4. Average Time: 2613L
00:00:22 v #497 > > │ Test case 10. Average Time: 2599L
00:00:22 v #498 > > │ Test case 7. Average Time: 2505L
00:00:22 v #499 > > │ Test case 11. Average Time: 1474L
00:00:22 v #500 > >
00:00:22 v #501 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:22 v #502 > > //// test
00:00:22 v #503 > >
00:00:22 v #504 > > let solutions = [[
00:00:22 v #505 > >     "A",
00:00:22 v #506 > >     fun input ->
00:00:22 v #507 > >         input
00:00:22 v #508 > >         |> Seq.toList
00:00:22 v #509 > >         |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[
00:00:22 v #510 > > x ]]) [[]]
00:00:22 v #511 > >         |> Seq.toArray
00:00:22 v #512 > >         |> String
00:00:22 v #513 > >
00:00:22 v #514 > >     "B",
00:00:22 v #515 > >     fun input ->
00:00:22 v #516 > >         input
00:00:22 v #517 > >         |> Seq.rev
00:00:22 v #518 > >         |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then
00:00:22 v #519 > > acc else x :: acc) list [[]]
00:00:22 v #520 > >         |> Seq.rev
00:00:22 v #521 > >         |> Seq.toArray
00:00:22 v #522 > >         |> String
00:00:22 v #523 > >
00:00:22 v #524 > >     "C",
00:00:22 v #525 > >     fun input ->
00:00:22 v #526 > >         input
00:00:22 v #527 > >         |> Seq.rev
00:00:22 v #528 > >         |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set
00:00:22 v #529 > > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]])
00:00:22 v #530 > >         |> snd
00:00:22 v #531 > >         |> Seq.rev
00:00:22 v #532 > >         |> Seq.toArray
00:00:22 v #533 > >         |> String
00:00:22 v #534 > >
00:00:22 v #535 > >     "D",
00:00:22 v #536 > >     fun input ->
00:00:22 v #537 > >         input
00:00:22 v #538 > >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:22 v #539 > > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]])
00:00:22 v #540 > >         |> snd
00:00:22 v #541 > >         |> String
00:00:22 v #542 > >
00:00:22 v #543 > >     "E",
00:00:22 v #544 > >     fun input ->
00:00:22 v #545 > >         input
00:00:22 v #546 > >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:22 v #547 > > else set.Add x, x :: acc) (Set.empty, [[]])
00:00:22 v #548 > >         |> snd
00:00:22 v #549 > >         |> List.rev
00:00:22 v #550 > >         |> List.toArray
00:00:22 v #551 > >         |> String
00:00:22 v #552 > >
00:00:22 v #553 > >     "F",
00:00:22 v #554 > >     fun input ->
00:00:22 v #555 > >         input
00:00:22 v #556 > >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:22 v #557 > > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]])
00:00:22 v #558 > >         |> snd
00:00:22 v #559 > >         |> List.toArray
00:00:22 v #560 > >         |> String
00:00:22 v #561 > >
00:00:22 v #562 > >     "G",
00:00:22 v #563 > >     fun input ->
00:00:22 v #564 > >         input
00:00:22 v #565 > >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:22 v #566 > > else set.Add x, x :: acc) (Set.empty, [[]])
00:00:22 v #567 > >         |> snd
00:00:22 v #568 > >         |> List.toArray
00:00:22 v #569 > >         |> Array.rev
00:00:22 v #570 > >         |> String
00:00:22 v #571 > >
00:00:22 v #572 > >     "H",
00:00:22 v #573 > >     fun input ->
00:00:22 v #574 > >         input
00:00:22 v #575 > >         |> Seq.toList
00:00:22 v #576 > >         |> fun list ->
00:00:22 v #577 > >             let rec loop set = function
00:00:22 v #578 > >                 | head :: tail when Set.contains head set -> loop set tail
00:00:22 v #579 > >                 | head :: tail -> (loop (set.Add head) tail) @ [[ head ]]
00:00:22 v #580 > >                 | [[]] -> [[]]
00:00:22 v #581 > >             loop Set.empty list
00:00:22 v #582 > >             |> List.rev
00:00:22 v #583 > >         |> List.toArray
00:00:22 v #584 > >         |> String
00:00:22 v #585 > >
00:00:22 v #586 > >     "I",
00:00:22 v #587 > >     fun input ->
00:00:22 v #588 > >         input
00:00:22 v #589 > >         |> Seq.toList
00:00:22 v #590 > >         |> fun list ->
00:00:22 v #591 > >             let rec loop set = function
00:00:22 v #592 > >                 | head :: tail when Set.contains head set -> loop set tail
00:00:22 v #593 > >                 | head :: tail -> loop (set.Add head) tail |> Array.append [[|
00:00:22 v #594 > > head |]]
00:00:22 v #595 > >                 | [[]] -> [[||]]
00:00:22 v #596 > >             loop Set.empty list
00:00:22 v #597 > >         |> String
00:00:22 v #598 > >
00:00:22 v #599 > >     "J",
00:00:22 v #600 > >     fun input ->
00:00:22 v #601 > >         input
00:00:22 v #602 > >         |> Seq.toList
00:00:22 v #603 > >         |> fun list ->
00:00:22 v #604 > >             let rec loop set = function
00:00:22 v #605 > >                 | head :: tail when Set.contains head set -> loop set tail
00:00:22 v #606 > >                 | head :: tail -> head :: loop (set.Add head) tail
00:00:22 v #607 > >                 | [[]] -> [[]]
00:00:22 v #608 > >             loop Set.empty list
00:00:22 v #609 > >         |> List.toArray
00:00:22 v #610 > >         |> String
00:00:22 v #611 > >
00:00:22 v #612 > >     "K",
00:00:22 v #613 > >     fun input ->
00:00:22 v #614 > >         input
00:00:22 v #615 > >         |> Seq.distinct
00:00:22 v #616 > >         |> Seq.toArray
00:00:22 v #617 > >         |> String
00:00:22 v #618 > > ]]
00:00:22 v #619 > > let testCases = seq {
00:00:22 v #620 > >     "abc", "abc"
00:00:22 v #621 > >     "accabb", "acb"
00:00:22 v #622 > >     "pprrqqpp", "prq"
00:00:22 v #623 > >
00:00:22 v #624 > > "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb
00:00:22 v #625 > > ", "acb"
00:00:22 v #626 > > }
00:00:22 v #627 > > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions
00:00:22 v #628 > > testCases
00:00:22 v #629 > > uniqueLettersTests
00:00:22 v #630 > > |> sortResultList
00:01:21 v #631 > >
00:01:21 v #632 > > ── [ 58.45s - stdout ] ─────────────────────────────────────────────────────────
00:01:21 v #633 > > │
00:01:21 v #634 > > │
00:01:21 v #635 > > │ Test: uniqueLettersTests
00:01:21 v #636 > > │
00:01:21 v #637 > > │ Solution: abc
00:01:21 v #638 > > │ Test case 1. A. Time: 1033L
00:01:21 v #639 > > │ Test case 2. B. Time: 1628L
00:01:21 v #640 > > │ Test case 3. C. Time: 1879L
00:01:21 v #641 > > │ Test case 4. D. Time: 1077L
00:01:21 v #642 > > │ Test case 5. E. Time: 1108L
00:01:21 v #643 > > │ Test case 6. F. Time: 758L
00:01:21 v #644 > > │ Test case 7. G. Time: 698L
00:01:21 v #645 > > │ Test case 8. H. Time: 807L
00:01:21 v #646 > > │ Test case 9. I. Time: 714L
00:01:21 v #647 > > │ Test case 10. J. Time: 699L
00:01:21 v #648 > > │ Test case 11. K. Time: 704L
00:01:21 v #649 > > │
00:01:21 v #650 > > │ Solution: accabb
00:01:21 v #651 > > │ Test case 1. A. Time: 700L
00:01:21 v #652 > > │ Test case 2. B. Time: 921L
00:01:21 v #653 > > │ Test case 3. C. Time: 1128L
00:01:21 v #654 > > │ Test case 4. D. Time: 789L
00:01:21 v #655 > > │ Test case 5. E. Time: 778L
00:01:21 v #656 > > │ Test case 6. F. Time: 784L
00:01:21 v #657 > > │ Test case 7. G. Time: 716L
00:01:21 v #658 > > │ Test case 8. H. Time: 768L
00:01:21 v #659 > > │ Test case 9. I. Time: 736L
00:01:21 v #660 > > │ Test case 10. J. Time: 700L
00:01:21 v #661 > > │ Test case 11. K. Time: 565L
00:01:21 v #662 > > │
00:01:21 v #663 > > │ Solution: pprrqqpp
00:01:21 v #664 > > │ Test case 1. A. Time: 706L
00:01:21 v #665 > > │ Test case 2. B. Time: 891L
00:01:21 v #666 > > │ Test case 3. C. Time: 1217L
00:01:21 v #667 > > │ Test case 4. D. Time: 830L
00:01:21 v #668 > > │ Test case 5. E. Time: 783L
00:01:21 v #669 > > │ Test case 6. F. Time: 784L
00:01:21 v #670 > > │ Test case 7. G. Time: 772L
00:01:21 v #671 > > │ Test case 8. H. Time: 862L
00:01:21 v #672 > > │ Test case 9. I. Time: 813L
00:01:21 v #673 > > │ Test case 10. J. Time: 722L
00:01:21 v #674 > > │ Test case 11. K. Time: 578L
00:01:21 v #675 > > │
00:01:21 v #676 > > │ Solution:
00:01:21 v #677 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb│ Test case 1. A. Time: 1723L
00:01:21 v #678 > > │ Test case 2. B. Time: 2456L
00:01:21 v #679 > > │ Test case 3. C. Time: 3492L
00:01:21 v #680 > > │ Test case 4. D. Time: 1947L
00:01:21 v #681 > > │ Test case 5. E. Time: 1638L
00:01:21 v #682 > > │ Test case 6. F. Time: 1974L
00:01:21 v #683 > > │ Test case 7. G. Time: 1899L
00:01:21 v #684 > > │ Test case 8. H. Time: 1778L
00:01:21 v #685 > > │ Test case 9. I. Time: 1730L
00:01:21 v #686 > > │ Test case 10. J. Time: 1640L
00:01:21 v #687 > > │ Test case 11. K. Time: 985L
00:01:21 v #688 > > │
00:01:21 v #689 > > │ Input
00:01:21 v #690 > > | Expected	| Result	| Best
00:01:21 v #691 > > │ ---
00:01:21 v #692 > > | ---     	| ---   	| ---
00:01:21 v #693 > > │ abc
00:01:21 v #694 > > | abc     	| abc   	| (7, 698)
00:01:21 v #695 > > │ accabb
00:01:21 v #696 > > | acb     	| acb   	| (11, 565)
00:01:21 v #697 > > │ pprrqqpp
00:01:21 v #698 > > | prq     	| prq   	| (11, 578)
00:01:21 v #699 > > │
00:01:21 v #700 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb	|
00:01:21 v #701 > > acb     	| acb   	| (11, 985)
00:01:21 v #702 > > │
00:01:21 v #703 > > │ Average Ranking
00:01:21 v #704 > > │ Test case 11. Average Time: 708L
00:01:21 v #705 > > │ Test case 10. Average Time: 940L
00:01:21 v #706 > > │ Test case 9. Average Time: 998L
00:01:21 v #707 > > │ Test case 7. Average Time: 1021L
00:01:21 v #708 > > │ Test case 1. Average Time: 1040L
00:01:21 v #709 > > │ Test case 8. Average Time: 1053L
00:01:21 v #710 > > │ Test case 6. Average Time: 1075L
00:01:21 v #711 > > │ Test case 5. Average Time: 1076L
00:01:21 v #712 > > │ Test case 4. Average Time: 1160L
00:01:21 v #713 > > │ Test case 2. Average Time: 1474L
00:01:21 v #714 > > │ Test case 3. Average Time: 1929L
00:01:21 v #715 > > │
00:01:21 v #716 > >
00:01:21 v #717 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:21 v #718 > > │ ## rotateStringsTests
00:01:21 v #719 > >
00:01:21 v #720 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:21 v #721 > > │ https://www.hackerrank.com/challenges/rotate-string/forum
00:01:21 v #722 > > │
00:01:21 v #723 > > │ Test: RotateStrings
00:01:21 v #724 > > │
00:01:21 v #725 > > │ Solution: abc
00:01:21 v #726 > > │ Test case 1. A. Time: 1842L
00:01:21 v #727 > > │ Test case 2. B. Time: 1846L
00:01:21 v #728 > > │ Test case 3. C. Time: 1936L
00:01:21 v #729 > > │ Test case 4. CA. Time: 2224L
00:01:21 v #730 > > │ Test case 5. CB. Time: 2329L
00:01:21 v #731 > > │ Test case 6. D. Time: 2474L
00:01:21 v #732 > > │ Test case 7. E. Time: 1664L
00:01:21 v #733 > > │ Test case 8. F. Time: 1517L
00:01:21 v #734 > > │ Test case 9. FA. Time: 1651L
00:01:21 v #735 > > │ Test case 10. FB. Time: 3764L
00:01:21 v #736 > > │ Test case 11. FC. Time: 5415L
00:01:21 v #737 > > │
00:01:21 v #738 > > │ Solution: abcde
00:01:21 v #739 > > │ Test case 1. A. Time: 3356L
00:01:21 v #740 > > │ Test case 2. B. Time: 2592L
00:01:21 v #741 > > │ Test case 3. C. Time: 2346L
00:01:21 v #742 > > │ Test case 4. CA. Time: 2997L
00:01:21 v #743 > > │ Test case 5. CB. Time: 3061L
00:01:21 v #744 > > │ Test case 6. D. Time: 4051L
00:01:21 v #745 > > │ Test case 7. E. Time: 1905L
00:01:21 v #746 > > │ Test case 8. F. Time: 1771L
00:01:21 v #747 > > │ Test case 9. FA. Time: 2175L
00:01:21 v #748 > > │ Test case 10. FB. Time: 3275L
00:01:21 v #749 > > │ Test case 11. FC. Time: 5266L
00:01:21 v #750 > > │
00:01:21 v #751 > > │ Solution: abcdefghi
00:01:21 v #752 > > │ Test case 1. A. Time: 4492L
00:01:21 v #753 > > │ Test case 2. B. Time: 3526L
00:01:21 v #754 > > │ Test case 3. C. Time: 3583L
00:01:21 v #755 > > │ Test case 4. CA. Time: 3711L
00:01:21 v #756 > > │ Test case 5. CB. Time: 4783L
00:01:21 v #757 > > │ Test case 6. D. Time: 7557L
00:01:21 v #758 > > │ Test case 7. E. Time: 3452L
00:01:21 v #759 > > │ Test case 8. F. Time: 3050L
00:01:21 v #760 > > │ Test case 9. FA. Time: 3275L
00:01:21 v #761 > > │ Test case 10. FB. Time: 4635L
00:01:21 v #762 > > │ Test case 11. FC. Time: 5616L
00:01:21 v #763 > > │
00:01:21 v #764 > > │ Solution: abab
00:01:21 v #765 > > │ Test case 1. A. Time: 2093L
00:01:21 v #766 > > │ Test case 2. B. Time: 1843L
00:01:21 v #767 > > │ Test case 3. C. Time: 1746L
00:01:21 v #768 > > │ Test case 4. CA. Time: 2085L
00:01:21 v #769 > > │ Test case 5. CB. Time: 2139L
00:01:21 v #770 > > │ Test case 6. D. Time: 2095L
00:01:21 v #771 > > │ Test case 7. E. Time: 1723L
00:01:21 v #772 > > │ Test case 8. F. Time: 1558L
00:01:21 v #773 > > │ Test case 9. FA. Time: 1620L
00:01:21 v #774 > > │ Test case 10. FB. Time: 2319L
00:01:21 v #775 > > │ Test case 11. FC. Time: 3918L
00:01:21 v #776 > > │
00:01:21 v #777 > > │ Solution: aa
00:01:21 v #778 > > │ Test case 1. A. Time: 1107L
00:01:21 v #779 > > │ Test case 2. B. Time: 1241L
00:01:21 v #780 > > │ Test case 3. C. Time: 1183L
00:01:21 v #781 > > │ Test case 4. CA. Time: 1563L
00:01:21 v #782 > > │ Test case 5. CB. Time: 1525L
00:01:21 v #783 > > │ Test case 6. D. Time: 1591L
00:01:21 v #784 > > │ Test case 7. E. Time: 1327L
00:01:21 v #785 > > │ Test case 8. F. Time: 1151L
00:01:21 v #786 > > │ Test case 9. FA. Time: 1180L
00:01:21 v #787 > > │ Test case 10. FB. Time: 1733L
00:01:21 v #788 > > │ Test case 11. FC. Time: 2817L
00:01:21 v #789 > > │
00:01:21 v #790 > > │ Solution: z
00:01:21 v #791 > > │ Test case 1. A. Time: 816L
00:01:21 v #792 > > │ Test case 2. B. Time: 745L
00:01:21 v #793 > > │ Test case 3. C. Time: 928L
00:01:21 v #794 > > │ Test case 4. CA. Time: 1375L
00:01:21 v #795 > > │ Test case 5. CB. Time: 1029L
00:01:21 v #796 > > │ Test case 6. D. Time: 852L
00:01:21 v #797 > > │ Test case 7. E. Time: 712L
00:01:21 v #798 > > │ Test case 8. F. Time: 263L
00:01:21 v #799 > > │ Test case 9. FA. Time: 232L
00:01:21 v #800 > > │ Test case 10. FB. Time: 773L
00:01:21 v #801 > > │ Test case 11. FC. Time: 1789L
00:01:21 v #802 > > │
00:01:21 v #803 > > │ Input           | Expected
00:01:21 v #804 > >
00:01:21 v #805 > > | Result
00:01:21 v #806 > >
00:01:21 v #807 > > | Best
00:01:21 v #808 > > │ ---             | ---
00:01:21 v #809 > >
00:01:21 v #810 > > | ---
00:01:21 v #811 > >
00:01:21 v #812 > > | ---
00:01:21 v #813 > > │ abc             | bca cab abc
00:01:21 v #814 > >
00:01:21 v #815 > > | bca cab abc
00:01:21 v #816 > >
00:01:21 v #817 > > | (8, 1517)
00:01:21 v #818 > > │ abcde           | bcdea cdeab deabc eabcd abcde
00:01:21 v #819 > > | bcdea cdeab deabc eabcd abcde
00:01:21 v #820 > > | (8, 1771)
00:01:21 v #821 > > │ abcdefghi       | bcdefghia cdefghiab defghiabc efghiabcd
00:01:21 v #822 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi       | bcdefghia cdefghiab
00:01:21 v #823 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi       |
00:01:21 v #824 > > (8, 3050)
00:01:21 v #825 > > │ abab            | baba abab baba abab
00:01:21 v #826 > > | baba abab baba abab
00:01:21 v #827 > > | (8, 1558)
00:01:21 v #828 > > │ aa              | aa aa
00:01:21 v #829 > >
00:01:21 v #830 > > | aa aa
00:01:21 v #831 > >
00:01:21 v #832 > > | (1, 1107)
00:01:21 v #833 > > │ z               | z
00:01:21 v #834 > >
00:01:21 v #835 > > | z
00:01:21 v #836 > >
00:01:21 v #837 > > | (9, 232)
00:01:21 v #838 > > │
00:01:21 v #839 > > │ Averages
00:01:21 v #840 > > │ Test case 1. Average Time: 2284L
00:01:21 v #841 > > │ Test case 2. Average Time: 1965L
00:01:21 v #842 > > │ Test case 3. Average Time: 1953L
00:01:21 v #843 > > │ Test case 4. Average Time: 2325L
00:01:21 v #844 > > │ Test case 5. Average Time: 2477L
00:01:21 v #845 > > │ Test case 6. Average Time: 3103L
00:01:21 v #846 > > │ Test case 7. Average Time: 1797L
00:01:21 v #847 > > │ Test case 8. Average Time: 1551L
00:01:21 v #848 > > │ Test case 9. Average Time: 1688L
00:01:21 v #849 > > │ Test case 10. Average Time: 2749L
00:01:21 v #850 > > │ Test case 11. Average Time: 4136L
00:01:21 v #851 > > │
00:01:21 v #852 > > │ Ranking
00:01:21 v #853 > > │ Test case 11. Average Time: 4136L
00:01:21 v #854 > > │ Test case 6. Average Time: 3103L
00:01:21 v #855 > > │ Test case 10. Average Time: 2749L
00:01:21 v #856 > > │ Test case 5. Average Time: 2477L
00:01:21 v #857 > > │ Test case 4. Average Time: 2325L
00:01:21 v #858 > > │ Test case 1. Average Time: 2284L
00:01:21 v #859 > > │ Test case 2. Average Time: 1965L
00:01:21 v #860 > > │ Test case 3. Average Time: 1953L
00:01:21 v #861 > > │ Test case 7. Average Time: 1797L
00:01:21 v #862 > > │ Test case 9. Average Time: 1688L
00:01:21 v #863 > > │ Test case 8. Average Time: 1551L
00:01:21 v #864 > >
00:01:21 v #865 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:21 v #866 > > //// test
00:01:21 v #867 > >
00:01:21 v #868 > > let solutions = [[
00:01:21 v #869 > >     "A",
00:01:21 v #870 > >     fun (input: string) ->
00:01:21 v #871 > >         let resultList =
00:01:21 v #872 > >             List.fold (fun acc x ->
00:01:21 v #873 > >                 let rotate (text: string) (letter: string) = (text |>
00:01:21 v #874 > > SpiralSm.slice 1 (input.Length - 1)) + letter
00:01:21 v #875 > >                 [[ rotate (if acc.IsEmpty then input else acc.Head) (string x)
00:01:21 v #876 > > ]] @ acc
00:01:21 v #877 > >             ) [[]] (Seq.toList input)
00:01:21 v #878 > >
00:01:21 v #879 > >         (resultList, "")
00:01:21 v #880 > >         ||> List.foldBack (fun acc x -> x + acc + " ")
00:01:21 v #881 > >         |> _.TrimEnd()
00:01:21 v #882 > >
00:01:21 v #883 > >     "B",
00:01:21 v #884 > >     fun input ->
00:01:21 v #885 > >         input
00:01:21 v #886 > >         |> Seq.toList
00:01:21 v #887 > >         |> List.fold (fun (acc: string list) letter ->
00:01:21 v #888 > >             let last =
00:01:21 v #889 > >                 if acc.IsEmpty
00:01:21 v #890 > >                 then input
00:01:21 v #891 > >                 else acc.Head
00:01:21 v #892 > >
00:01:21 v #893 > >             let item = last.[[1 .. input.Length - 1]] + string letter
00:01:21 v #894 > >
00:01:21 v #895 > >             item :: acc
00:01:21 v #896 > >         ) [[]]
00:01:21 v #897 > >         |> List.rev
00:01:21 v #898 > >         |> SpiralSm.concat " "
00:01:21 v #899 > >
00:01:21 v #900 > >     "C",
00:01:21 v #901 > >     fun input ->
00:01:21 v #902 > >         input
00:01:21 v #903 > >         |> Seq.toList
00:01:21 v #904 > >         |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..
00:01:21 v #905 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:01:21 v #906 > >         |> List.rev
00:01:21 v #907 > >         |> List.skip 1
00:01:21 v #908 > >         |> SpiralSm.concat " "
00:01:21 v #909 > >
00:01:21 v #910 > >     "CA",
00:01:21 v #911 > >     fun input ->
00:01:21 v #912 > >         input
00:01:21 v #913 > >         |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..
00:01:21 v #914 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:01:21 v #915 > >         |> Seq.rev
00:01:21 v #916 > >         |> Seq.skip 1
00:01:21 v #917 > >         |> SpiralSm.concat " "
00:01:21 v #918 > >
00:01:21 v #919 > >     "CB",
00:01:21 v #920 > >     fun input ->
00:01:21 v #921 > >         input
00:01:21 v #922 > >         |> Seq.toArray
00:01:21 v #923 > >         |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[|
00:01:21 v #924 > > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]]
00:01:21 v #925 > >         |> Array.rev
00:01:21 v #926 > >         |> Array.skip 1
00:01:21 v #927 > >         |> SpiralSm.concat " "
00:01:21 v #928 > >
00:01:21 v #929 > >     "D",
00:01:21 v #930 > >     fun input ->
00:01:21 v #931 > >         input
00:01:21 v #932 > >         |> Seq.toList
00:01:21 v #933 > >         |> fun list ->
00:01:21 v #934 > >             let rec loop (acc: char list list) = function
00:01:21 v #935 > >                 | _ when acc.Length = list.Length -> acc
00:01:21 v #936 > >                 | head :: tail ->
00:01:21 v #937 > >                     let item = tail @ [[ head ]]
00:01:21 v #938 > >                     loop (item :: acc) item
00:01:21 v #939 > >                 | [[]] -> [[]]
00:01:21 v #940 > >             loop [[]] list
00:01:21 v #941 > >         |> List.rev
00:01:21 v #942 > >         |> List.map (List.toArray >> String)
00:01:21 v #943 > >         |> SpiralSm.concat " "
00:01:21 v #944 > >
00:01:21 v #945 > >     "E",
00:01:21 v #946 > >     fun input ->
00:01:21 v #947 > >         input
00:01:21 v #948 > >         |> Seq.toList
00:01:21 v #949 > >         |> fun list ->
00:01:21 v #950 > >             let rec loop (last: string) = function
00:01:21 v #951 > >                 | head :: tail ->
00:01:21 v #952 > >                     let item = last.[[1 .. input.Length - 1]] + string head
00:01:21 v #953 > >                     item :: loop item tail
00:01:21 v #954 > >                 | [[]] -> [[]]
00:01:21 v #955 > >             loop input list
00:01:21 v #956 > >         |> SpiralSm.concat " "
00:01:21 v #957 > >
00:01:21 v #958 > >     "F",
00:01:21 v #959 > >     fun input ->
00:01:21 v #960 > >         Array.singleton 0
00:01:21 v #961 > >         |> Array.append [[| 1 .. input.Length - 1 |]]
00:01:21 v #962 > >         |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:01:21 v #963 > >         |> SpiralSm.concat " "
00:01:21 v #964 > >
00:01:21 v #965 > >     "FA",
00:01:21 v #966 > >     fun input ->
00:01:21 v #967 > >         List.singleton 0
00:01:21 v #968 > >         |> List.append [[ 1 .. input.Length - 1 ]]
00:01:21 v #969 > >         |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:01:21 v #970 > >         |> SpiralSm.concat " "
00:01:21 v #971 > >
00:01:21 v #972 > >     "FB",
00:01:21 v #973 > >     fun input ->
00:01:21 v #974 > >         Seq.singleton 0
00:01:21 v #975 > >         |> Seq.append (seq { 1 .. input.Length - 1 })
00:01:21 v #976 > >         |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:01:21 v #977 > >         |> SpiralSm.concat " "
00:01:21 v #978 > >
00:01:21 v #979 > >     "FC",
00:01:21 v #980 > >     fun input ->
00:01:21 v #981 > >         Array.singleton 0
00:01:21 v #982 > >         |> Array.append [[| 1 .. input.Length - 1 |]]
00:01:21 v #983 > >         |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:01:21 v #984 > >         |> SpiralSm.concat " "
00:01:21 v #985 > > ]]
00:01:21 v #986 > > let testCases = seq {
00:01:21 v #987 > >     "abc", "bca cab abc"
00:01:21 v #988 > >     "abcde", "bcdea cdeab deabc eabcd abcde"
00:01:21 v #989 > >     "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef
00:01:21 v #990 > > hiabcdefg iabcdefgh abcdefghi"
00:01:21 v #991 > >     "abab", "baba abab baba abab"
00:01:21 v #992 > >     "aa", "aa aa"
00:01:21 v #993 > >     "z", "z"
00:01:21 v #994 > > }
00:01:21 v #995 > > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions
00:01:21 v #996 > > testCases
00:01:21 v #997 > > rotateStringsTests
00:01:21 v #998 > > |> sortResultList
00:02:44 v #999 > >
00:02:44 v #1000 > > ── [ 1.38m - stdout ] ──────────────────────────────────────────────────────────
00:02:44 v #1001 > > │
00:02:44 v #1002 > > │
00:02:44 v #1003 > > │ Test: rotateStringsTests
00:02:44 v #1004 > > │
00:02:44 v #1005 > > │ Solution: abc
00:02:44 v #1006 > > │ Test case 1. A. Time: 969L
00:02:44 v #1007 > > │ Test case 2. B. Time: 825L
00:02:44 v #1008 > > │ Test case 3. C. Time: 847L
00:02:44 v #1009 > > │ Test case 4. CA. Time: 1060L
00:02:44 v #1010 > > │ Test case 5. CB. Time: 918L
00:02:44 v #1011 > > │ Test case 6. D. Time: 914L
00:02:44 v #1012 > > │ Test case 7. E. Time: 714L
00:02:44 v #1013 > > │ Test case 8. F. Time: 585L
00:02:44 v #1014 > > │ Test case 9. FA. Time: 637L
00:02:44 v #1015 > > │ Test case 10. FB. Time: 1168L
00:02:44 v #1016 > > │ Test case 11. FC. Time: 1708L
00:02:44 v #1017 > > │
00:02:44 v #1018 > > │ Solution: abcde
00:02:44 v #1019 > > │ Test case 1. A. Time: 1264L
00:02:44 v #1020 > > │ Test case 2. B. Time: 924L
00:02:44 v #1021 > > │ Test case 3. C. Time: 908L
00:02:44 v #1022 > > │ Test case 4. CA. Time: 1015L
00:02:44 v #1023 > > │ Test case 5. CB. Time: 1121L
00:02:44 v #1024 > > │ Test case 6. D. Time: 1398L
00:02:44 v #1025 > > │ Test case 7. E. Time: 851L
00:02:44 v #1026 > > │ Test case 8. F. Time: 670L
00:02:44 v #1027 > > │ Test case 9. FA. Time: 885L
00:02:44 v #1028 > > │ Test case 10. FB. Time: 1468L
00:02:44 v #1029 > > │ Test case 11. FC. Time: 1876L
00:02:44 v #1030 > > │
00:02:44 v #1031 > > │ Solution: abcdefghi
00:02:44 v #1032 > > │ Test case 1. A. Time: 2141L
00:02:44 v #1033 > > │ Test case 2. B. Time: 1507L
00:02:44 v #1034 > > │ Test case 3. C. Time: 1631L
00:02:44 v #1035 > > │ Test case 4. CA. Time: 1703L
00:02:44 v #1036 > > │ Test case 5. CB. Time: 1986L
00:02:44 v #1037 > > │ Test case 6. D. Time: 2695L
00:02:44 v #1038 > > │ Test case 7. E. Time: 1423L
00:02:44 v #1039 > > │ Test case 8. F. Time: 1211L
00:02:44 v #1040 > > │ Test case 9. FA. Time: 1369L
00:02:44 v #1041 > > │ Test case 10. FB. Time: 2029L
00:02:44 v #1042 > > │ Test case 11. FC. Time: 2077L
00:02:44 v #1043 > > │
00:02:44 v #1044 > > │ Solution: abab
00:02:44 v #1045 > > │ Test case 1. A. Time: 967L
00:02:44 v #1046 > > │ Test case 2. B. Time: 773L
00:02:44 v #1047 > > │ Test case 3. C. Time: 872L
00:02:44 v #1048 > > │ Test case 4. CA. Time: 963L
00:02:44 v #1049 > > │ Test case 5. CB. Time: 1065L
00:02:44 v #1050 > > │ Test case 6. D. Time: 1085L
00:02:44 v #1051 > > │ Test case 7. E. Time: 749L
00:02:44 v #1052 > > │ Test case 8. F. Time: 599L
00:02:44 v #1053 > > │ Test case 9. FA. Time: 735L
00:02:44 v #1054 > > │ Test case 10. FB. Time: 1277L
00:02:44 v #1055 > > │ Test case 11. FC. Time: 1639L
00:02:44 v #1056 > > │
00:02:44 v #1057 > > │ Solution: aa
00:02:44 v #1058 > > │ Test case 1. A. Time: 646L
00:02:44 v #1059 > > │ Test case 2. B. Time: 617L
00:02:44 v #1060 > > │ Test case 3. C. Time: 645L
00:02:44 v #1061 > > │ Test case 4. CA. Time: 789L
00:02:44 v #1062 > > │ Test case 5. CB. Time: 726L
00:02:44 v #1063 > > │ Test case 6. D. Time: 661L
00:02:44 v #1064 > > │ Test case 7. E. Time: 600L
00:02:44 v #1065 > > │ Test case 8. F. Time: 453L
00:02:44 v #1066 > > │ Test case 9. FA. Time: 526L
00:02:44 v #1067 > > │ Test case 10. FB. Time: 1019L
00:02:44 v #1068 > > │ Test case 11. FC. Time: 1392L
00:02:44 v #1069 > > │
00:02:44 v #1070 > > │ Solution: z
00:02:44 v #1071 > > │ Test case 1. A. Time: 425L
00:02:44 v #1072 > > │ Test case 2. B. Time: 386L
00:02:44 v #1073 > > │ Test case 3. C. Time: 467L
00:02:44 v #1074 > > │ Test case 4. CA. Time: 644L
00:02:44 v #1075 > > │ Test case 5. CB. Time: 519L
00:02:44 v #1076 > > │ Test case 6. D. Time: 436L
00:02:44 v #1077 > > │ Test case 7. E. Time: 372L
00:02:44 v #1078 > > │ Test case 8. F. Time: 72L
00:02:44 v #1079 > > │ Test case 9. FA. Time: 91L
00:02:44 v #1080 > > │ Test case 10. FB. Time: 397L
00:02:44 v #1081 > > │ Test case 11. FC. Time: 737L
00:02:44 v #1082 > > │
00:02:44 v #1083 > > │ Input    	| Expected
00:02:44 v #1084 > > | Result
00:02:44 v #1085 > >
00:02:44 v #1086 > > | Best
00:02:44 v #1087 > > │ ---      	| ---
00:02:44 v #1088 > >
00:02:44 v #1089 > > | ---
00:02:44 v #1090 > >
00:02:44 v #1091 > > | ---
00:02:44 v #1092 > > │ abc      	| bca cab abc
00:02:44 v #1093 > > | bca cab abc
00:02:44 v #1094 > > | (8, 585)
00:02:44 v #1095 > > │ abcde    	| bcdea cdeab deabc eabcd abcde
00:02:44 v #1096 > > | bcdea cdeab deabc eabcd abcde
00:02:44 v #1097 > > | (8, 670)
00:02:44 v #1098 > > │ abcdefghi	| bcdefghia cdefghiab defghiabc efghiabcd fghiabcde
00:02:44 v #1099 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi	| bcdefghia cdefghiab defghiabc efghiabcd
00:02:44 v #1100 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi	| (8, 1211)
00:02:44 v #1101 > > │ abab     	| baba abab baba abab
00:02:44 v #1102 > > | baba abab baba abab
00:02:44 v #1103 > > | (8, 599)
00:02:44 v #1104 > > │ aa       	| aa aa
00:02:44 v #1105 > >
00:02:44 v #1106 > > | aa aa
00:02:44 v #1107 > >
00:02:44 v #1108 > > | (8, 453)
00:02:44 v #1109 > > │ z        	| z
00:02:44 v #1110 > >
00:02:44 v #1111 > > | z
00:02:44 v #1112 > >
00:02:44 v #1113 > > | (8, 72)
00:02:44 v #1114 > > │
00:02:44 v #1115 > > │ Average Ranking
00:02:44 v #1116 > > │ Test case 8. Average Time: 598L
00:02:44 v #1117 > > │ Test case 9. Average Time: 707L
00:02:44 v #1118 > > │ Test case 7. Average Time: 784L
00:02:44 v #1119 > > │ Test case 2. Average Time: 838L
00:02:44 v #1120 > > │ Test case 3. Average Time: 895L
00:02:44 v #1121 > > │ Test case 4. Average Time: 1029L
00:02:44 v #1122 > > │ Test case 5. Average Time: 1055L
00:02:44 v #1123 > > │ Test case 1. Average Time: 1068L
00:02:44 v #1124 > > │ Test case 6. Average Time: 1198L
00:02:44 v #1125 > > │ Test case 10. Average Time: 1226L
00:02:44 v #1126 > > │ Test case 11. Average Time: 1571L
00:02:44 v #1127 > > │
00:02:44 v #1128 > >
00:02:44 v #1129 > > ── markdown ────────────────────────────────────────────────────────────────────
00:02:44 v #1130 > > │ ## rotate_strings_tests
00:02:44 v #1131 > >
00:02:44 v #1132 > > ── markdown ────────────────────────────────────────────────────────────────────
00:02:44 v #1133 > > │ ```
00:02:44 v #1134 > > │ 02:21:12 verbose #1 benchmark.run_all / {count =
00:02:44 v #1135 > > 2000000; test_name = rotate_strings_tests}
00:02:44 v #1136 > > │
00:02:44 v #1137 > > │ 02:21:12 verbose #2 benchmark.run / {input_str =
00:02:44 v #1138 > > "abc"}
00:02:44 v #1139 > > │ 02:21:13 verbose #3 benchmark.run / solutions.map / {i
00:02:44 v #1140 > > = 1; test_name = F; time = 638}
00:02:44 v #1141 > > │ 02:21:14 verbose #4 benchmark.run / solutions.map / {i
00:02:44 v #1142 > > = 2; test_name = FA; time = 779}
00:02:44 v #1143 > > │
00:02:44 v #1144 > > │ 02:21:14 verbose #5 benchmark.run / {input_str =
00:02:44 v #1145 > > "abcde"}
00:02:44 v #1146 > > │ 02:21:15 verbose #6 benchmark.run / solutions.map / {i
00:02:44 v #1147 > > = 1; test_name = F; time = 745}
00:02:44 v #1148 > > │ 02:21:16 verbose #7 benchmark.run / solutions.map / {i
00:02:44 v #1149 > > = 2; test_name = FA; time = 809}
00:02:44 v #1150 > > │
00:02:44 v #1151 > > │ 02:21:16 verbose #8 benchmark.run / {input_str =
00:02:44 v #1152 > > "abcdefghi"}
00:02:44 v #1153 > > │ 02:21:17 verbose #9 benchmark.run / solutions.map / {i
00:02:44 v #1154 > > = 1; test_name = F; time = 1092}
00:02:44 v #1155 > > │ 02:21:18 verbose #10 benchmark.run / solutions.map
00:02:44 v #1156 > > {i = 2; test_name = FA; time = 1304}
00:02:44 v #1157 > > │
00:02:44 v #1158 > > │ 02:21:18 verbose #11 benchmark.run / {input_str =
00:02:44 v #1159 > > "abab"}
00:02:44 v #1160 > > │ 02:21:19 verbose #12 benchmark.run / solutions.map
00:02:44 v #1161 > > {i = 1; test_name = F; time = 536}
00:02:44 v #1162 > > │ 02:21:20 verbose #13 benchmark.run / solutions.map
00:02:44 v #1163 > > {i = 2; test_name = FA; time = 620}
00:02:44 v #1164 > > │
00:02:44 v #1165 > > │ 02:21:20 verbose #14 benchmark.run / {input_str =
00:02:44 v #1166 > > "aa"}
00:02:44 v #1167 > > │ 02:21:21 verbose #15 benchmark.run / solutions.map
00:02:44 v #1168 > > {i = 1; test_name = F; time = 365}
00:02:44 v #1169 > > │ 02:21:21 verbose #16 benchmark.run / solutions.map
00:02:44 v #1170 > > {i = 2; test_name = FA; time = 396}
00:02:44 v #1171 > > │
00:02:44 v #1172 > > │ 02:21:21 verbose #17 benchmark.run / {input_str = "z"}
00:02:44 v #1173 > > │ 02:21:22 verbose #18 benchmark.run / solutions.map
00:02:44 v #1174 > > {i = 1; test_name = F; time = 158}
00:02:44 v #1175 > > │ 02:21:22 verbose #19 benchmark.run / solutions.map
00:02:44 v #1176 > > {i = 2; test_name = FA; time = 143}
00:02:44 v #1177 > > │ ```
00:02:44 v #1178 > > │ input      	| expected
00:02:44 v #1179 > >
00:02:44 v #1180 > > | result
00:02:44 v #1181 > >
00:02:44 v #1182 > > | best
00:02:44 v #1183 > > │ ---        	| ---
00:02:44 v #1184 > >
00:02:44 v #1185 > > | ---
00:02:44 v #1186 > >
00:02:44 v #1187 > > | ---
00:02:44 v #1188 > > │ "abc"      	| "bca cab abc"
00:02:44 v #1189 > > | "bca cab abc"
00:02:44 v #1190 > > | 1, 638
00:02:44 v #1191 > > │ "abcde"    	| "bcdea cdeab deabc eabcd abcde"
00:02:44 v #1192 > > | "bcdea cdeab deabc eabcd abcde"
00:02:44 v #1193 > > | 1, 745
00:02:44 v #1194 > > │ "abcdefghi"	| "bcdefghia cdefghiab defghiabc efghiabcd
00:02:44 v #1195 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi"	| "bcdefghia cdefghiab
00:02:44 v #1196 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi"	| 1, 1092
00:02:44 v #1197 > > │ "abab"     	| "baba abab baba abab"
00:02:44 v #1198 > > | "baba abab baba abab"
00:02:44 v #1199 > > | 1, 536
00:02:44 v #1200 > > │ "aa"       	| "aa aa"
00:02:44 v #1201 > >
00:02:44 v #1202 > > | "aa aa"
00:02:44 v #1203 > >
00:02:44 v #1204 > > | 1, 365
00:02:44 v #1205 > > │ "z"        	| "z"
00:02:44 v #1206 > >
00:02:44 v #1207 > > | "z"
00:02:44 v #1208 > >
00:02:44 v #1209 > > | 2, 143
00:02:44 v #1210 > > │ ```
00:02:44 v #1211 > > │ 02:21:22 verbose #20 benchmark.sort_result_list
00:02:44 v #1212 > > averages.iter / {avg = 589; i = 1}
00:02:44 v #1213 > > │ 02:21:22 verbose #21 benchmark.sort_result_list
00:02:44 v #1214 > > averages.iter / {avg = 675; i = 2}
00:02:44 v #1215 > > │ ```
00:02:44 v #1216 > >
00:02:44 v #1217 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:44 v #1218 > > //// test
00:02:44 v #1219 > > //// timeout=60000
00:02:44 v #1220 > >
00:02:44 v #1221 > > inl get_solutions () =
00:02:44 v #1222 > >     [[
00:02:44 v #1223 > >         // "A",
00:02:44 v #1224 > >         // fun (input : string) =>
00:02:44 v #1225 > >         //     let resultList =
00:02:44 v #1226 > >         //         List.fold (fun acc x =>
00:02:44 v #1227 > >         //             let rotate (text : string) (letter : string) =
00:02:44 v #1228 > > text.Substring (1, input.Length - 1) + letter
00:02:44 v #1229 > >         //             [[ rotate (if acc.IsEmpty then input else acc.Head)
00:02:44 v #1230 > > (string x) ]] ++ acc
00:02:44 v #1231 > >         //         ) [[]] (Seq.toList input)
00:02:44 v #1232 > >
00:02:44 v #1233 > >         //     List.foldBack (fun acc x => x + acc + " ") resultList ""
00:02:44 v #1234 > >         //     |> fun x => x.TrimEnd ()
00:02:44 v #1235 > >
00:02:44 v #1236 > >         // "B",
00:02:44 v #1237 > >         // fun input =>
00:02:44 v #1238 > >         //     input
00:02:44 v #1239 > >         //     |> Seq.toList
00:02:44 v #1240 > >         //     |> List.fold (fun (acc : string list) letter =>
00:02:44 v #1241 > >         //         let last =
00:02:44 v #1242 > >         //             if acc.IsEmpty
00:02:44 v #1243 > >         //             then input
00:02:44 v #1244 > >         //             else acc.Head
00:02:44 v #1245 > >
00:02:44 v #1246 > >         //         let item = last.[[1 .. input.Length - 1]] + string letter
00:02:44 v #1247 > >
00:02:44 v #1248 > >         //         item :: acc
00:02:44 v #1249 > >         //     ) [[]]
00:02:44 v #1250 > >         //     |> List.rev
00:02:44 v #1251 > >         //     |> SpiralSm.concat " "
00:02:44 v #1252 > >
00:02:44 v #1253 > >         // "C",
00:02:44 v #1254 > >         // fun input =>
00:02:44 v #1255 > >         //     input
00:02:44 v #1256 > >         //     |> Seq.toList
00:02:44 v #1257 > >         //     |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..
00:02:44 v #1258 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:02:44 v #1259 > >         //     |> List.rev
00:02:44 v #1260 > >         //     |> List.skip 1
00:02:44 v #1261 > >         //     |> SpiralSm.concat " "
00:02:44 v #1262 > >
00:02:44 v #1263 > >         // "CA",
00:02:44 v #1264 > >         // fun input =>
00:02:44 v #1265 > >         //     input
00:02:44 v #1266 > >         //     |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..
00:02:44 v #1267 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:02:44 v #1268 > >         //     |> Seq.rev
00:02:44 v #1269 > >         //     |> Seq.skip 1
00:02:44 v #1270 > >         //     |> SpiralSm.concat " "
00:02:44 v #1271 > >
00:02:44 v #1272 > >         // "CB",
00:02:44 v #1273 > >         // fun input =>
00:02:44 v #1274 > >         //     input
00:02:44 v #1275 > >         //     |> Seq.toArray
00:02:44 v #1276 > >         //     |> Array.fold (fun (acc : a _ string) letter => acc |>
00:02:44 v #1277 > > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]]))
00:02:44 v #1278 > > (a ;[[ input ]])
00:02:44 v #1279 > >         //     |> Array.rev
00:02:44 v #1280 > >         //     |> Array.skip 1
00:02:44 v #1281 > >         //     |> SpiralSm.concat " "
00:02:44 v #1282 > >
00:02:44 v #1283 > >         // "D",
00:02:44 v #1284 > >         // fun input =>
00:02:44 v #1285 > >         //     input
00:02:44 v #1286 > >         //     |> Seq.toList
00:02:44 v #1287 > >         //     |> fun list =>
00:02:44 v #1288 > >         //         let rec loop (acc : list (list char)) = function
00:02:44 v #1289 > >         //             | _ when acc.Length = list.Length => acc
00:02:44 v #1290 > >         //             | head :: tail =>
00:02:44 v #1291 > >         //                 let item = tail ++ [[ head ]]
00:02:44 v #1292 > >         //                 loop (item :: acc) item
00:02:44 v #1293 > >         //             | [[]] => [[]]
00:02:44 v #1294 > >         //         loop [[]] list
00:02:44 v #1295 > >         //     |> List.rev
00:02:44 v #1296 > >         //     |> List.map (List.toArray >> String)
00:02:44 v #1297 > >         //     |> SpiralSm.concat " "
00:02:44 v #1298 > >
00:02:44 v #1299 > >         // "E",
00:02:44 v #1300 > >         // fun input =>
00:02:44 v #1301 > >         //     input
00:02:44 v #1302 > >         //     |> Seq.toList
00:02:44 v #1303 > >         //     |> fun list =>
00:02:44 v #1304 > >         //         let rec loop (last : string) = function
00:02:44 v #1305 > >         //             | head :: tail =>
00:02:44 v #1306 > >         //                 let item = last.[[1 .. input.Length - 1]] + string
00:02:44 v #1307 > > head
00:02:44 v #1308 > >         //                 item :: loop item tail
00:02:44 v #1309 > >         //             | [[]] => [[]]
00:02:44 v #1310 > >         //         loop input list
00:02:44 v #1311 > >         //     |> SpiralSm.concat " "
00:02:44 v #1312 > >
00:02:44 v #1313 > >         "F",
00:02:44 v #1314 > >         fun input =>
00:02:44 v #1315 > >         // Array.singleton 0
00:02:44 v #1316 > >         // |> Array.append [[| 1 .. input.Length - 1 |]]
00:02:44 v #1317 > >         // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:02:44 v #1318 > >         // |> SpiralSm.concat " "
00:02:44 v #1319 > >             inl input_length = input |> sm.length
00:02:44 v #1320 > >             am.singleton 0i32
00:02:44 v #1321 > >             |> am.append (am'.init_series 1 (input_length - 1) 1 |> fun x => a x
00:02:44 v #1322 > > : _ int _)
00:02:44 v #1323 > >             |> fun (a x) => x
00:02:44 v #1324 > >             |> am'.map_base fun i =>
00:02:44 v #1325 > >                 inl a = input |> sm'.slice i (input_length - 1)
00:02:44 v #1326 > >                 inl b = input |> sm'.slice 0 (i - 1)
00:02:44 v #1327 > >                 a +. b
00:02:44 v #1328 > >             |> fun x => a x : _ int _
00:02:44 v #1329 > >             |> seq.of_array
00:02:44 v #1330 > >             |> sm'.concat " "
00:02:44 v #1331 > >
00:02:44 v #1332 > >         "FA",
00:02:44 v #1333 > >         fun input =>
00:02:44 v #1334 > >         //     List.singleton 0
00:02:44 v #1335 > >         //     |> List.append [[ 1 .. input.Length - 1 ]]
00:02:44 v #1336 > >         //   //  |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:02:44 v #1337 > >         //     |> SpiralSm.concat " "
00:02:44 v #1338 > >             inl input_length = input |> sm.length
00:02:44 v #1339 > >             listm.singleton 0i32
00:02:44 v #1340 > >             |> listm.append (listm'.init_series 1 (input_length - 1) 1)
00:02:44 v #1341 > >             |> listm.map (fun i =>
00:02:44 v #1342 > >                 inl a = input |> sm'.slice i (input_length - 1)
00:02:44 v #1343 > >                 inl b = if i = 0 then "" else input |> sm'.slice 0 (i - 1)
00:02:44 v #1344 > >                 a +. b
00:02:44 v #1345 > >             )
00:02:44 v #1346 > >             |> listm'.box
00:02:44 v #1347 > >             |> listm'.to_array'
00:02:44 v #1348 > >             |> fun x => a x : _ int _
00:02:44 v #1349 > >             |> seq.of_array
00:02:44 v #1350 > >             |> sm'.concat " "
00:02:44 v #1351 > >
00:02:44 v #1352 > >         // "FB",
00:02:44 v #1353 > >         // fun input =>
00:02:44 v #1354 > >         //     Seq.singleton 0
00:02:44 v #1355 > >         //   //  |> Seq.append (seq { 1 .. input.Length - 1 })
00:02:44 v #1356 > >         //   //  |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:02:44 v #1357 > >         //     |> SpiralSm.concat " "
00:02:44 v #1358 > >
00:02:44 v #1359 > >         // "FC",
00:02:44 v #1360 > >         // fun input =>
00:02:44 v #1361 > >         //     Array.singleton 0
00:02:44 v #1362 > >         //     |> Array.append (a ;[[ 1 .. input.Length - 1 ]])
00:02:44 v #1363 > >         ////    |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ .. i
00:02:44 v #1364 > > - 1 ]])
00:02:44 v #1365 > >         //     |> SpiralSm.concat " "
00:02:44 v #1366 > >     ]]
00:02:44 v #1367 > >
00:02:44 v #1368 > > inl rec rotate_strings_tests () =
00:02:44 v #1369 > >     inl test_cases = [[
00:02:44 v #1370 > >         "abc", "bca cab abc"
00:02:44 v #1371 > >         "abcde", "bcdea cdeab deabc eabcd abcde"
00:02:44 v #1372 > >         "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde
00:02:44 v #1373 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi"
00:02:44 v #1374 > >         "abab", "baba abab baba abab"
00:02:44 v #1375 > >         "aa", "aa aa"
00:02:44 v #1376 > >         "z", "z"
00:02:44 v #1377 > >     ]]
00:02:44 v #1378 > >
00:02:44 v #1379 > >     inl solutions = get_solutions ()
00:02:44 v #1380 > >
00:02:44 v #1381 > >     // inl is_fast () = true
00:02:44 v #1382 > >
00:02:44 v #1383 > >     inl count =
00:02:44 v #1384 > >         if is_fast ()
00:02:44 v #1385 > >         then 1000i32
00:02:44 v #1386 > >         else 2000000i32
00:02:44 v #1387 > >
00:02:44 v #1388 > >     run_all (reflection.nameof { rotate_strings_tests }) count solutions
00:02:44 v #1389 > > test_cases
00:02:44 v #1390 > >     |> sort_result_list
00:02:44 v #1391 > >
00:02:44 v #1392 > > rotate_strings_tests ()
00:02:57 v #1393 > >
00:02:57 v #1394 > > ── [ 13.91s - stdout ] ─────────────────────────────────────────────────────────
00:02:57 v #1395 > > │
00:02:57 v #1396 > > │ ```
00:02:57 v #1397 > > │ 00:00:00 v #1 benchmark.run_all / { test_name =
00:02:57 v #1398 > > rotate_strings_tests; count = 2000000 }
00:02:57 v #1399 > > │
00:02:57 v #1400 > > │ 00:00:00 v #2 benchmark.run / { input_str = "abc" }
00:02:57 v #1401 > > │ 00:00:00 v #3 benchmark.run / solutions.map / { i = 1;
00:02:57 v #1402 > > test_name = F; time = 754 }
00:02:57 v #1403 > > │ 00:00:02 v #4 benchmark.run / solutions.map / { i = 2;
00:02:57 v #1404 > > test_name = FA; time = 955 }
00:02:57 v #1405 > > │
00:02:57 v #1406 > > │ 00:00:02 v #5 benchmark.run / { input_str = "abcde" }
00:02:57 v #1407 > > │ 00:00:03 v #6 benchmark.run / solutions.map / { i = 1;
00:02:57 v #1408 > > test_name = F; time = 785 }
00:02:57 v #1409 > > │ 00:00:04 v #7 benchmark.run / solutions.map / { i = 2;
00:02:57 v #1410 > > test_name = FA; time = 1038 }
00:02:57 v #1411 > > │
00:02:57 v #1412 > > │ 00:00:04 v #8 benchmark.run / { input_str = "abcdefghi"
00:02:57 v #1413 > > }
00:02:57 v #1414 > > │ 00:00:06 v #9 benchmark.run / solutions.map / { i = 1;
00:02:57 v #1415 > > test_name = F; time = 1353 }
00:02:57 v #1416 > > │ 00:00:08 v #10 benchmark.run / solutions.map / { i = 2;
00:02:57 v #1417 > > test_name = FA; time = 1583 }
00:02:57 v #1418 > > │
00:02:57 v #1419 > > │ 00:00:08 v #11 benchmark.run / { input_str = "abab" }
00:02:57 v #1420 > > │ 00:00:09 v #12 benchmark.run / solutions.map / { i = 1;
00:02:57 v #1421 > > test_name = F; time = 650 }
00:02:57 v #1422 > > │ 00:00:10 v #13 benchmark.run / solutions.map / { i = 2;
00:02:57 v #1423 > > test_name = FA; time = 802 }
00:02:57 v #1424 > > │
00:02:57 v #1425 > > │ 00:00:10 v #14 benchmark.run / { input_str = "aa" }
00:02:57 v #1426 > > │ 00:00:11 v #15 benchmark.run / solutions.map / { i = 1;
00:02:57 v #1427 > > test_name = F; time = 519 }
00:02:57 v #1428 > > │ 00:00:12 v #16 benchmark.run / solutions.map / { i = 2;
00:02:57 v #1429 > > test_name = FA; time = 605 }
00:02:57 v #1430 > > │
00:02:57 v #1431 > > │ 00:00:12 v #17 benchmark.run / { input_str = "z" }
00:02:57 v #1432 > > │ 00:00:12 v #18 benchmark.run / solutions.map / { i = 1;
00:02:57 v #1433 > > test_name = F; time = 109 }
00:02:57 v #1434 > > │ 00:00:12 v #19 benchmark.run / solutions.map / { i = 2;
00:02:57 v #1435 > > test_name = FA; time = 126 }
00:02:57 v #1436 > > │ ```
00:02:57 v #1437 > > │ input      	| expected
00:02:57 v #1438 > >
00:02:57 v #1439 > > | result
00:02:57 v #1440 > >
00:02:57 v #1441 > > | best
00:02:57 v #1442 > > │ ---        	| ---
00:02:57 v #1443 > >
00:02:58 v #1444 > > | ---
00:02:58 v #1445 > >
00:02:58 v #1446 > > | ---
00:02:58 v #1447 > > │ "abc"      	| "bca cab abc"
00:02:58 v #1448 > > | "bca cab abc"
00:02:58 v #1449 > > | 1, 754
00:02:58 v #1450 > > │ "abcde"    	| "bcdea cdeab deabc eabcd abcde"
00:02:58 v #1451 > > | "bcdea cdeab deabc eabcd abcde"
00:02:58 v #1452 > > | 1, 785
00:02:58 v #1453 > > │ "abcdefghi"	| "bcdefghia cdefghiab defghiabc efghiabcd
00:02:58 v #1454 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi"	| "bcdefghia cdefghiab
00:02:58 v #1455 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi"	| 1, 1353
00:02:58 v #1456 > > │ "abab"     	| "baba abab baba abab"
00:02:58 v #1457 > > | "baba abab baba abab"
00:02:58 v #1458 > > | 1, 650
00:02:58 v #1459 > > │ "aa"       	| "aa aa"
00:02:58 v #1460 > >
00:02:58 v #1461 > > | "aa aa"
00:02:58 v #1462 > >
00:02:58 v #1463 > > | 1, 519
00:02:58 v #1464 > > │ "z"        	| "z"
00:02:58 v #1465 > >
00:02:58 v #1466 > > | "z"
00:02:58 v #1467 > >
00:02:58 v #1468 > > | 1, 109
00:02:58 v #1469 > > │ ```
00:02:58 v #1470 > > │ 00:00:12 v #20 benchmark.sort_result_list
00:02:58 v #1471 > > averages.iter / { i = 1; avg = 695 }
00:02:58 v #1472 > > │ 00:00:12 v #21 benchmark.sort_result_list
00:02:58 v #1473 > > averages.iter / { i = 2; avg = 851 }
00:02:58 v #1474 > > │ ```
00:02:58 v #1475 > > │
00:02:58 v #1476 > >
00:02:58 v #1477 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:58 v #1478 > > //// test
00:02:58 v #1479 > >
00:02:58 v #1480 > > // rotate_strings_tests ()
00:02:58 v #1481 > > ()
00:02:58 v #1482 > >
00:02:58 v #1483 > > ── markdown ────────────────────────────────────────────────────────────────────
00:02:58 v #1484 > > │ ## binary_search_tests
00:02:58 v #1485 > >
00:02:58 v #1486 > > ── markdown ────────────────────────────────────────────────────────────────────
00:02:58 v #1487 > > │ ```
00:02:58 v #1488 > > │ 02:19:29 verbose #1 benchmark.run_all / {count =
00:02:58 v #1489 > > 10000000; test_name = binary_search_tests}
00:02:58 v #1490 > > │
00:02:58 v #1491 > > │ 02:19:29 verbose #2 benchmark.run / {input_str =
00:02:58 v #1492 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)}
00:02:58 v #1493 > > │ 02:19:30 verbose #3 benchmark.run / solutions.map / {i
00:02:58 v #1494 > > = 1; test_name = semi_open_1; time = 662}
00:02:58 v #1495 > > │ 02:19:30 verbose #4 benchmark.run / solutions.map / {i
00:02:58 v #1496 > > = 2; test_name = closed_1; time = 619}
00:02:58 v #1497 > > │ 02:19:31 verbose #5 benchmark.run / solutions.map / {i
00:02:58 v #1498 > > = 3; test_name = semi_open_2; time = 644}
00:02:58 v #1499 > > │ 02:19:32 verbose #6 benchmark.run / solutions.map / {i
00:02:58 v #1500 > > = 4; test_name = closed_2; time = 610}
00:02:58 v #1501 > > │
00:02:58 v #1502 > > │ 02:19:32 verbose #7 benchmark.run / {input_str =
00:02:58 v #1503 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)}
00:02:58 v #1504 > > │ 02:19:33 verbose #8 benchmark.run / solutions.map / {i
00:02:58 v #1505 > > = 1; test_name = semi_open_1; time = 607}
00:02:58 v #1506 > > │ 02:19:33 verbose #9 benchmark.run / solutions.map / {i
00:02:58 v #1507 > > = 2; test_name = closed_1; time = 559}
00:02:58 v #1508 > > │ 02:19:34 verbose #10 benchmark.run / solutions.map
00:02:58 v #1509 > > {i = 3; test_name = semi_open_2; time = 612}
00:02:58 v #1510 > > │ 02:19:35 verbose #11 benchmark.run / solutions.map
00:02:58 v #1511 > > {i = 4; test_name = closed_2; time = 577}
00:02:58 v #1512 > > │
00:02:58 v #1513 > > │ 02:19:35 verbose #12 benchmark.run / {input_str =
00:02:58 v #1514 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)}
00:02:58 v #1515 > > │ 02:19:35 verbose #13 benchmark.run / solutions.map
00:02:58 v #1516 > > {i = 1; test_name = semi_open_1; time = 550}
00:02:58 v #1517 > > │ 02:19:36 verbose #14 benchmark.run / solutions.map
00:02:58 v #1518 > > {i = 2; test_name = closed_1; time = 580}
00:02:58 v #1519 > > │ 02:19:37 verbose #15 benchmark.run / solutions.map
00:02:58 v #1520 > > {i = 3; test_name = semi_open_2; time = 624}
00:02:58 v #1521 > > │ 02:19:37 verbose #16 benchmark.run / solutions.map
00:02:58 v #1522 > > {i = 4; test_name = closed_2; time = 590}
00:02:58 v #1523 > > │
00:02:58 v #1524 > > │ 02:19:37 verbose #17 benchmark.run / {input_str =
00:02:58 v #1525 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)}
00:02:58 v #1526 > > │ 02:19:38 verbose #18 benchmark.run / solutions.map
00:02:58 v #1527 > > {i = 1; test_name = semi_open_1; time = 574}
00:02:58 v #1528 > > │ 02:19:39 verbose #19 benchmark.run / solutions.map
00:02:58 v #1529 > > {i = 2; test_name = closed_1; time = 577}
00:02:58 v #1530 > > │ 02:19:39 verbose #20 benchmark.run / solutions.map
00:02:58 v #1531 > > {i = 3; test_name = semi_open_2; time = 582}
00:02:58 v #1532 > > │ 02:19:40 verbose #21 benchmark.run / solutions.map
00:02:58 v #1533 > > {i = 4; test_name = closed_2; time = 585}
00:02:58 v #1534 > > │
00:02:58 v #1535 > > │ 02:19:40 verbose #22 benchmark.run / {input_str =
00:02:58 v #1536 > > struct ([|1; 2; 3; 4...00; ...|], 60, 1000)}
00:02:58 v #1537 > > │ 02:19:41 verbose #23 benchmark.run / solutions.map
00:02:58 v #1538 > > {i = 1; test_name = semi_open_1; time = 610}
00:02:58 v #1539 > > │ 02:19:42 verbose #24 benchmark.run / solutions.map
00:02:58 v #1540 > > {i = 2; test_name = closed_1; time = 672}
00:02:58 v #1541 > > │ 02:19:42 verbose #25 benchmark.run / solutions.map
00:02:58 v #1542 > > {i = 3; test_name = semi_open_2; time = 636}
00:02:58 v #1543 > > │ 02:19:43 verbose #26 benchmark.run / solutions.map
00:02:58 v #1544 > > {i = 4; test_name = closed_2; time = 629}
00:02:58 v #1545 > > │
00:02:58 v #1546 > > │ 02:19:43 verbose #27 benchmark.run / {input_str =
00:02:58 v #1547 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)}
00:02:58 v #1548 > > │ 02:19:44 verbose #28 benchmark.run / solutions.map
00:02:58 v #1549 > > {i = 1; test_name = semi_open_1; time = 599}
00:02:58 v #1550 > > │ 02:19:44 verbose #29 benchmark.run / solutions.map
00:02:58 v #1551 > > {i = 2; test_name = closed_1; time = 561}
00:02:58 v #1552 > > │ 02:19:45 verbose #30 benchmark.run / solutions.map
00:02:58 v #1553 > > {i = 3; test_name = semi_open_2; time = 604}
00:02:58 v #1554 > > │ 02:19:46 verbose #31 benchmark.run / solutions.map
00:02:58 v #1555 > > {i = 4; test_name = closed_2; time = 573}
00:02:58 v #1556 > > │
00:02:58 v #1557 > > │ 02:19:46 verbose #32 benchmark.run / {input_str =
00:02:58 v #1558 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)}
00:02:58 v #1559 > > │ 02:19:47 verbose #33 benchmark.run / solutions.map
00:02:58 v #1560 > > {i = 1; test_name = semi_open_1; time = 635}
00:02:58 v #1561 > > │ 02:19:47 verbose #34 benchmark.run / solutions.map
00:02:58 v #1562 > > {i = 2; test_name = closed_1; time = 603}
00:02:58 v #1563 > > │ 02:19:48 verbose #35 benchmark.run / solutions.map
00:02:58 v #1564 > > {i = 3; test_name = semi_open_2; time = 644}
00:02:58 v #1565 > > │ 02:19:49 verbose #36 benchmark.run / solutions.map
00:02:58 v #1566 > > {i = 4; test_name = closed_2; time = 628}
00:02:58 v #1567 > > │
00:02:58 v #1568 > > │ 02:19:49 verbose #37 benchmark.run / {input_str =
00:02:58 v #1569 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)}
00:02:58 v #1570 > > │ 02:19:49 verbose #38 benchmark.run / solutions.map
00:02:58 v #1571 > > {i = 1; test_name = semi_open_1; time = 643}
00:02:58 v #1572 > > │ 02:19:50 verbose #39 benchmark.run / solutions.map
00:02:58 v #1573 > > {i = 2; test_name = closed_1; time = 606}
00:02:58 v #1574 > > │ 02:19:51 verbose #40 benchmark.run / solutions.map
00:02:58 v #1575 > > {i = 3; test_name = semi_open_2; time = 636}
00:02:58 v #1576 > > │ 02:19:52 verbose #41 benchmark.run / solutions.map
00:02:58 v #1577 > > {i = 4; test_name = closed_2; time = 624}
00:02:58 v #1578 > > │
00:02:58 v #1579 > > │ 02:19:52 verbose #42 benchmark.run / {input_str =
00:02:58 v #1580 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)}
00:02:58 v #1581 > > │ 02:19:52 verbose #43 benchmark.run / solutions.map
00:02:58 v #1582 > > {i = 1; test_name = semi_open_1; time = 689}
00:02:58 v #1583 > > │ 02:19:53 verbose #44 benchmark.run / solutions.map
00:02:58 v #1584 > > {i = 2; test_name = closed_1; time = 613}
00:02:58 v #1585 > > │ 02:19:54 verbose #45 benchmark.run / solutions.map
00:02:58 v #1586 > > {i = 3; test_name = semi_open_2; time = 623}
00:02:58 v #1587 > > │ 02:19:55 verbose #46 benchmark.run / solutions.map
00:02:58 v #1588 > > {i = 4; test_name = closed_2; time = 613}
00:02:58 v #1589 > > │
00:02:58 v #1590 > > │ 02:19:55 verbose #47 benchmark.run / {input_str =
00:02:58 v #1591 > > struct ([|1; 2; 3; 4...100; ...|], 60, 100)}
00:02:58 v #1592 > > │ 02:19:55 verbose #48 benchmark.run / solutions.map
00:02:58 v #1593 > > {i = 1; test_name = semi_open_1; time = 630}
00:02:58 v #1594 > > │ 02:19:56 verbose #49 benchmark.run / solutions.map
00:02:58 v #1595 > > {i = 2; test_name = closed_1; time = 633}
00:02:58 v #1596 > > │ 02:19:57 verbose #50 benchmark.run / solutions.map
00:02:58 v #1597 > > {i = 3; test_name = semi_open_2; time = 653}
00:02:58 v #1598 > > │ 02:19:58 verbose #51 benchmark.run / solutions.map
00:02:58 v #1599 > > {i = 4; test_name = closed_2; time = 646}
00:02:58 v #1600 > > │ ```
00:02:58 v #1601 > > │ input                                    	| expected	| result  	|
00:02:58 v #1602 > > best
00:02:58 v #1603 > > │ ---                                      	| ---     	| ---     	|
00:02:58 v #1604 > > ---
00:02:58 v #1605 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7)    	| US4_0 3 	| US4_0 3 	|
00:02:58 v #1606 > > 4, 610
00:02:58 v #1607 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7)    	| US4_0 0 	| US4_0 0 	|
00:02:58 v #1608 > > 2, 559
00:02:58 v #1609 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7)   	| US4_0 6 	| US4_0 6 	|
00:02:58 v #1610 > > 1, 550
00:02:58 v #1611 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7)   	| US4_1   	| US4_1   	|
00:02:58 v #1612 > > 1, 574
00:02:58 v #1613 > > │ struct ([1; 2; 3; 4...00; ...], 60, 1000)	| US4_0 59	| US4_0 59	|
00:02:58 v #1614 > > 1, 610
00:02:58 v #1615 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7)    	| US4_0 3 	| US4_0 3 	|
00:02:58 v #1616 > > 2, 561
00:02:58 v #1617 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7)    	| US4_0 0 	| US4_0 0 	|
00:02:58 v #1618 > > 2, 603
00:02:58 v #1619 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7)   	| US4_0 6 	| US4_0 6 	|
00:02:58 v #1620 > > 2, 606
00:02:58 v #1621 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7)   	| US4_1   	| US4_1   	|
00:02:58 v #1622 > > 2, 613
00:02:58 v #1623 > > │ struct ([1; 2; 3; 4...100; ...], 60, 100)	| US4_0 59	| US4_0 59	|
00:02:58 v #1624 > > 1, 630
00:02:58 v #1625 > > │ ```
00:02:58 v #1626 > > │ 02:19:58 verbose #52 benchmark.sort_result_list
00:02:58 v #1627 > > averages.iter / {avg = 602; i = 2}
00:02:58 v #1628 > > │ 02:19:58 verbose #53 benchmark.sort_result_list
00:02:58 v #1629 > > averages.iter / {avg = 607; i = 4}
00:02:58 v #1630 > > │ 02:19:58 verbose #54 benchmark.sort_result_list
00:02:58 v #1631 > > averages.iter / {avg = 619; i = 1}
00:02:58 v #1632 > > │ 02:19:58 verbose #55 benchmark.sort_result_list
00:02:58 v #1633 > > averages.iter / {avg = 625; i = 3}
00:02:58 v #1634 > > │ ```
00:02:58 v #1635 > >
00:02:58 v #1636 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:58 v #1637 > > //// test
00:02:58 v #1638 > > //// timeout=90000
00:02:58 v #1639 > >
00:02:58 v #1640 > > inl binary_search_semi_open_1 arr target left right =
00:02:58 v #1641 > >     inl rec body left right =
00:02:58 v #1642 > >         if left >= right
00:02:58 v #1643 > >         then None
00:02:58 v #1644 > >         else
00:02:58 v #1645 > >             inl mid = (left + right) / 2
00:02:58 v #1646 > >             inl item = index arr mid
00:02:58 v #1647 > >             if item = target
00:02:58 v #1648 > >             then Some mid
00:02:58 v #1649 > >             elif item < target
00:02:58 v #1650 > >             then loop (mid + 1) right
00:02:58 v #1651 > >             else loop left mid
00:02:58 v #1652 > >     and inl loop left right =
00:02:58 v #1653 > >         if var_is right |> not
00:02:58 v #1654 > >         then body left right
00:02:58 v #1655 > >         else
00:02:58 v #1656 > >             inl left = dyn left
00:02:58 v #1657 > >             join body left right
00:02:58 v #1658 > >     loop left right
00:02:58 v #1659 > >
00:02:58 v #1660 > > inl binary_search_closed_1 arr target left right =
00:02:58 v #1661 > >     inl rec body left right =
00:02:58 v #1662 > >         if left > right
00:02:58 v #1663 > >         then None
00:02:58 v #1664 > >         else
00:02:58 v #1665 > >             inl mid = (left + right) / 2
00:02:58 v #1666 > >             inl item = index arr mid
00:02:58 v #1667 > >             if item = target
00:02:58 v #1668 > >             then Some mid
00:02:58 v #1669 > >             elif item < target
00:02:58 v #1670 > >             then loop (mid + 1) right
00:02:58 v #1671 > >             else loop left (mid - 1)
00:02:58 v #1672 > >     and inl loop left right =
00:02:58 v #1673 > >         if var_is right |> not
00:02:58 v #1674 > >         then body left right
00:02:58 v #1675 > >         else
00:02:58 v #1676 > >             inl left = dyn left
00:02:58 v #1677 > >             join body left right
00:02:58 v #1678 > >     loop left right
00:02:58 v #1679 > >
00:02:58 v #1680 > > inl binary_search_semi_open_2 arr target left right =
00:02:58 v #1681 > >     let rec body left right =
00:02:58 v #1682 > >         if left >= right
00:02:58 v #1683 > >         then None
00:02:58 v #1684 > >         else
00:02:58 v #1685 > >             inl mid = (left + right) / 2
00:02:58 v #1686 > >             inl item = index arr mid
00:02:58 v #1687 > >             if item = target
00:02:58 v #1688 > >             then Some mid
00:02:58 v #1689 > >             elif item < target
00:02:58 v #1690 > >             then loop (mid + 1) right
00:02:58 v #1691 > >             else loop left mid
00:02:58 v #1692 > >     and inl loop left right = body left right
00:02:58 v #1693 > >     loop left right
00:02:58 v #1694 > >
00:02:58 v #1695 > > inl binary_search_closed_2 arr target left right =
00:02:58 v #1696 > >     let rec body left right =
00:02:58 v #1697 > >         if left > right
00:02:58 v #1698 > >         then None
00:02:58 v #1699 > >         else
00:02:58 v #1700 > >             inl mid = (left + right) / 2
00:02:58 v #1701 > >             inl item = index arr mid
00:02:58 v #1702 > >             if item = target
00:02:58 v #1703 > >             then Some mid
00:02:58 v #1704 > >             elif item < target
00:02:58 v #1705 > >             then loop (mid + 1) right
00:02:58 v #1706 > >             else loop left (mid - 1)
00:02:58 v #1707 > >     and inl loop left right = body left right
00:02:58 v #1708 > >     loop left right
00:02:58 v #1709 > >
00:02:58 v #1710 > > inl get_solutions () =
00:02:58 v #1711 > >     [[
00:02:58 v #1712 > >         "semi_open_1",
00:02:58 v #1713 > >         fun (arr, (target, len)) =>
00:02:58 v #1714 > >             binary_search_semi_open_1 arr target 0 len
00:02:58 v #1715 > >
00:02:58 v #1716 > >         "closed_1",
00:02:58 v #1717 > >         fun (arr, (target, len)) =>
00:02:58 v #1718 > >             binary_search_closed_1 arr target 0 (len - 1)
00:02:58 v #1719 > >
00:02:58 v #1720 > >         "semi_open_2",
00:02:58 v #1721 > >         fun (arr, (target, len)) =>
00:02:58 v #1722 > >             binary_search_semi_open_2 arr target 0 len
00:02:58 v #1723 > >
00:02:58 v #1724 > >         "closed_2",
00:02:58 v #1725 > >         fun (arr, (target, len)) =>
00:02:58 v #1726 > >             binary_search_closed_2 arr target 0 (len - 1)
00:02:58 v #1727 > >     ]]
00:02:58 v #1728 > >
00:02:58 v #1729 > > inl rec binary_search_tests () =
00:02:58 v #1730 > >     inl arr_with_len target len arr =
00:02:58 v #1731 > >         arr, (target, (len |> optionm'.default_with fun () => length arr))
00:02:58 v #1732 > >
00:02:58 v #1733 > >     inl test_cases = [[
00:02:58 v #1734 > >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32)
00:02:58 v #1735 > >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32)
00:02:58 v #1736 > >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32)
00:02:58 v #1737 > >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None
00:02:58 v #1738 > >         ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len
00:02:58 v #1739 > > 60 None), (Some 59)
00:02:58 v #1740 > >
00:02:58 v #1741 > >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some
00:02:58 v #1742 > > 3i32)
00:02:58 v #1743 > >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some
00:02:58 v #1744 > > 0i32)
00:02:58 v #1745 > >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some
00:02:58 v #1746 > > 6i32)
00:02:58 v #1747 > >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None
00:02:58 v #1748 > >         ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len
00:02:58 v #1749 > > 60 (Some 100)), (Some 59)
00:02:58 v #1750 > >     ]]
00:02:58 v #1751 > >
00:02:58 v #1752 > >     inl solutions = get_solutions ()
00:02:58 v #1753 > >
00:02:58 v #1754 > >     // inl is_fast () = true
00:02:58 v #1755 > >
00:02:58 v #1756 > >     inl count =
00:02:58 v #1757 > >         if is_fast ()
00:02:58 v #1758 > >         then 1000i32
00:02:58 v #1759 > >         else 10000000i32
00:02:58 v #1760 > >
00:02:58 v #1761 > >     run_all (reflection.nameof { binary_search_tests }) count solutions
00:02:58 v #1762 > > test_cases
00:02:58 v #1763 > >     |> sort_result_list
00:02:58 v #1764 > >
00:02:58 v #1765 > >
00:02:58 v #1766 > > let main () =
00:02:58 v #1767 > >     binary_search_tests ()
00:03:11 v #1768 > >
00:03:11 v #1769 > > ── [ 13.42s - stdout ] ─────────────────────────────────────────────────────────
00:03:11 v #1770 > > │
00:03:11 v #1771 > > │ ```
00:03:11 v #1772 > > │ 00:00:00 v #1 benchmark.run_all / { test_name =
00:03:11 v #1773 > > binary_search_tests; count = 10000000 }
00:03:11 v #1774 > > │
00:03:11 v #1775 > > │ 00:00:00 v #2 benchmark.run / { input_str = struct ([|1;
00:03:11 v #1776 > > 3; 4; 6; 8; 9; 11|], 6, 7) }
00:03:11 v #1777 > > │ 00:00:00 v #3 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1778 > > test_name = semi_open_1; time = 244 }
00:03:11 v #1779 > > │ 00:00:00 v #4 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1780 > > test_name = closed_1; time = 177 }
00:03:11 v #1781 > > │ 00:00:01 v #5 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1782 > > test_name = semi_open_2; time = 243 }
00:03:11 v #1783 > > │ 00:00:01 v #6 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1784 > > test_name = closed_2; time = 180 }
00:03:11 v #1785 > > │
00:03:11 v #1786 > > │ 00:00:01 v #7 benchmark.run / { input_str = struct ([|1;
00:03:11 v #1787 > > 3; 4; 6; 8; 9; 11|], 1, 7) }
00:03:11 v #1788 > > │ 00:00:02 v #8 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1789 > > test_name = semi_open_1; time = 349 }
00:03:11 v #1790 > > │ 00:00:02 v #9 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1791 > > test_name = closed_1; time = 257 }
00:03:11 v #1792 > > │ 00:00:02 v #10 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1793 > > test_name = semi_open_2; time = 114 }
00:03:11 v #1794 > > │ 00:00:03 v #11 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1795 > > test_name = closed_2; time = 93 }
00:03:11 v #1796 > > │
00:03:11 v #1797 > > │ 00:00:03 v #12 benchmark.run / { input_str = struct
00:03:11 v #1798 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) }
00:03:11 v #1799 > > │ 00:00:03 v #13 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1800 > > test_name = semi_open_1; time = 83 }
00:03:11 v #1801 > > │ 00:00:03 v #14 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1802 > > test_name = closed_1; time = 88 }
00:03:11 v #1803 > > │ 00:00:03 v #15 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1804 > > test_name = semi_open_2; time = 82 }
00:03:11 v #1805 > > │ 00:00:04 v #16 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1806 > > test_name = closed_2; time = 86 }
00:03:11 v #1807 > > │
00:03:11 v #1808 > > │ 00:00:04 v #17 benchmark.run / { input_str = struct
00:03:11 v #1809 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) }
00:03:11 v #1810 > > │ 00:00:04 v #18 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1811 > > test_name = semi_open_1; time = 84 }
00:03:11 v #1812 > > │ 00:00:04 v #19 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1813 > > test_name = closed_1; time = 86 }
00:03:11 v #1814 > > │ 00:00:05 v #20 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1815 > > test_name = semi_open_2; time = 87 }
00:03:11 v #1816 > > │ 00:00:05 v #21 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1817 > > test_name = closed_2; time = 88 }
00:03:11 v #1818 > > │
00:03:11 v #1819 > > │ 00:00:05 v #22 benchmark.run / { input_str = struct
00:03:11 v #1820 > > ([|1; 2; 3; 4...00; ...|], 60, 1000) }
00:03:11 v #1821 > > │ 00:00:05 v #23 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1822 > > test_name = semi_open_1; time = 109 }
00:03:11 v #1823 > > │ 00:00:05 v #24 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1824 > > test_name = closed_1; time = 118 }
00:03:11 v #1825 > > │ 00:00:06 v #25 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1826 > > test_name = semi_open_2; time = 108 }
00:03:11 v #1827 > > │ 00:00:06 v #26 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1828 > > test_name = closed_2; time = 141 }
00:03:11 v #1829 > > │
00:03:11 v #1830 > > │ 00:00:06 v #27 benchmark.run / { input_str = struct
00:03:11 v #1831 > > ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) }
00:03:11 v #1832 > > │ 00:00:06 v #28 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1833 > > test_name = semi_open_1; time = 88 }
00:03:11 v #1834 > > │ 00:00:07 v #29 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1835 > > test_name = closed_1; time = 88 }
00:03:11 v #1836 > > │ 00:00:07 v #30 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1837 > > test_name = semi_open_2; time = 88 }
00:03:11 v #1838 > > │ 00:00:07 v #31 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1839 > > test_name = closed_2; time = 89 }
00:03:11 v #1840 > > │
00:03:11 v #1841 > > │ 00:00:07 v #32 benchmark.run / { input_str = struct
00:03:11 v #1842 > > ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) }
00:03:11 v #1843 > > │ 00:00:07 v #33 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1844 > > test_name = semi_open_1; time = 97 }
00:03:11 v #1845 > > │ 00:00:08 v #34 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1846 > > test_name = closed_1; time = 101 }
00:03:11 v #1847 > > │ 00:00:08 v #35 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1848 > > test_name = semi_open_2; time = 98 }
00:03:11 v #1849 > > │ 00:00:08 v #36 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1850 > > test_name = closed_2; time = 102 }
00:03:11 v #1851 > > │
00:03:11 v #1852 > > │ 00:00:08 v #37 benchmark.run / { input_str = struct
00:03:11 v #1853 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) }
00:03:11 v #1854 > > │ 00:00:09 v #38 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1855 > > test_name = semi_open_1; time = 101 }
00:03:11 v #1856 > > │ 00:00:09 v #39 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1857 > > test_name = closed_1; time = 102 }
00:03:11 v #1858 > > │ 00:00:09 v #40 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1859 > > test_name = semi_open_2; time = 101 }
00:03:11 v #1860 > > │ 00:00:10 v #41 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1861 > > test_name = closed_2; time = 102 }
00:03:11 v #1862 > > │
00:03:11 v #1863 > > │ 00:00:10 v #42 benchmark.run / { input_str = struct
00:03:11 v #1864 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) }
00:03:11 v #1865 > > │ 00:00:10 v #43 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1866 > > test_name = semi_open_1; time = 103 }
00:03:11 v #1867 > > │ 00:00:10 v #44 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1868 > > test_name = closed_1; time = 89 }
00:03:11 v #1869 > > │ 00:00:10 v #45 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1870 > > test_name = semi_open_2; time = 107 }
00:03:11 v #1871 > > │ 00:00:11 v #46 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1872 > > test_name = closed_2; time = 86 }
00:03:11 v #1873 > > │
00:03:11 v #1874 > > │ 00:00:11 v #47 benchmark.run / { input_str = struct
00:03:11 v #1875 > > ([|1; 2; 3; 4...100; ...|], 60, 100) }
00:03:11 v #1876 > > │ 00:00:11 v #48 benchmark.run / solutions.map / { i = 1;
00:03:11 v #1877 > > test_name = semi_open_1; time = 100 }
00:03:11 v #1878 > > │ 00:00:11 v #49 benchmark.run / solutions.map / { i = 2;
00:03:11 v #1879 > > test_name = closed_1; time = 103 }
00:03:11 v #1880 > > │ 00:00:12 v #50 benchmark.run / solutions.map / { i = 3;
00:03:11 v #1881 > > test_name = semi_open_2; time = 280 }
00:03:11 v #1882 > > │ 00:00:12 v #51 benchmark.run / solutions.map / { i = 4;
00:03:11 v #1883 > > test_name = closed_2; time = 105 }
00:03:11 v #1884 > > │ ```
00:03:11 v #1885 > > │ input                                    	| expected	| result  	|
00:03:11 v #1886 > > best
00:03:11 v #1887 > > │ ---                                      	| ---     	| ---     	|
00:03:11 v #1888 > > ---
00:03:11 v #1889 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7)    	| US6_0 3 	| US6_0 3 	|
00:03:11 v #1890 > > 2, 177
00:03:11 v #1891 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7)    	| US6_0 0 	| US6_0 0 	|
00:03:11 v #1892 > > 4, 93
00:03:11 v #1893 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7)   	| US6_0 6 	| US6_0 6 	|
00:03:11 v #1894 > > 3, 82
00:03:11 v #1895 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7)   	| US6_1   	| US6_1   	|
00:03:11 v #1896 > > 1, 84
00:03:11 v #1897 > > │ struct ([1; 2; 3; 4...00; ...], 60, 1000)	| US6_0 59	| US6_0 59	|
00:03:11 v #1898 > > 3, 108
00:03:11 v #1899 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7)    	| US6_0 3 	| US6_0 3 	|
00:03:11 v #1900 > > 1, 88
00:03:11 v #1901 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7)    	| US6_0 0 	| US6_0 0 	|
00:03:11 v #1902 > > 1, 97
00:03:11 v #1903 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7)   	| US6_0 6 	| US6_0 6 	|
00:03:11 v #1904 > > 1, 101
00:03:11 v #1905 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7)   	| US6_1   	| US6_1   	|
00:03:11 v #1906 > > 4, 86
00:03:11 v #1907 > > │ struct ([1; 2; 3; 4...100; ...], 60, 100)	| US6_0 59	| US6_0 59	|
00:03:11 v #1908 > > 1, 100
00:03:11 v #1909 > > │ ```
00:03:11 v #1910 > > │ 00:00:12 v #52 benchmark.sort_result_list
00:03:11 v #1911 > > averages.iter / { i = 4; avg = 107 }
00:03:11 v #1912 > > │ 00:00:12 v #53 benchmark.sort_result_list
00:03:11 v #1913 > > averages.iter / { i = 2; avg = 120 }
00:03:11 v #1914 > > │ 00:00:12 v #54 benchmark.sort_result_list
00:03:11 v #1915 > > averages.iter / { i = 3; avg = 130 }
00:03:11 v #1916 > > │ 00:00:12 v #55 benchmark.sort_result_list
00:03:11 v #1917 > > averages.iter / { i = 1; avg = 135 }
00:03:11 v #1918 > > │ ```
00:03:11 v #1919 > > │
00:03:11 v #1920 > >
00:03:11 v #1921 > > ── markdown ────────────────────────────────────────────────────────────────────
00:03:11 v #1922 > > │ ## returnLettersWithOddCountTests
00:03:11 v #1923 > >
00:03:11 v #1924 > > ── markdown ────────────────────────────────────────────────────────────────────
00:03:11 v #1925 > > │ Test: ReturnLettersWithOddCount
00:03:11 v #1926 > > │
00:03:11 v #1927 > > │ Solution: 1
00:03:11 v #1928 > > │ Test case 1. A. Time: 645L
00:03:11 v #1929 > > │
00:03:11 v #1930 > > │ Solution: 2
00:03:11 v #1931 > > │ Test case 1. A. Time: 663L
00:03:11 v #1932 > > │
00:03:11 v #1933 > > │ Solution: 3
00:03:11 v #1934 > > │ Test case 1. A. Time: 680L
00:03:11 v #1935 > > │
00:03:11 v #1936 > > │ Solution: 9
00:03:11 v #1937 > > │ Test case 1. A. Time: 730L
00:03:11 v #1938 > > │
00:03:11 v #1939 > > │ Solution: 10
00:03:11 v #1940 > > │ Test case 1. A. Time: 815L
00:03:11 v #1941 > > │
00:03:11 v #1942 > > │ Input   | Expected        | Result          | Best
00:03:11 v #1943 > > │ ---     | ---             | ---             | ---
00:03:11 v #1944 > > │ 1       | a               | a               | (1, 645)
00:03:11 v #1945 > > │ 2       | ba              | ba              | (1, 663)
00:03:11 v #1946 > > │ 3       | aaa             | aaa             | (1, 680)
00:03:11 v #1947 > > │ 9       | aaaaaaaaa       | aaaaaaaaa       | (1, 730)
00:03:11 v #1948 > > │ 10      | baaaaaaaaa      | baaaaaaaaa      | (1, 815)
00:03:11 v #1949 > > │
00:03:11 v #1950 > > │ Averages
00:03:11 v #1951 > > │ Test case 1. Average Time: 706L
00:03:11 v #1952 > > │
00:03:11 v #1953 > > │ Ranking
00:03:11 v #1954 > > │ Test case 1. Average Time: 706L
00:03:11 v #1955 > >
00:03:11 v #1956 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:11 v #1957 > > //// test
00:03:11 v #1958 > >
00:03:11 v #1959 > > let solutions = [[
00:03:11 v #1960 > >     "A",
00:03:11 v #1961 > >     fun n ->
00:03:11 v #1962 > >         let mutable _builder = StringBuilder (new string('a', n))
00:03:11 v #1963 > >         if n % 2 = 0 then
00:03:11 v #1964 > >             _builder.[[0]] <- 'b'
00:03:11 v #1965 > >
00:03:11 v #1966 > >         _builder.ToString ()
00:03:11 v #1967 > > ]]
00:03:11 v #1968 > > let testCases = seq {
00:03:11 v #1969 > >     1, "a"
00:03:11 v #1970 > >     2, "ba"
00:03:11 v #1971 > >     3, "aaa"
00:03:11 v #1972 > >     9, "aaaaaaaaa"
00:03:11 v #1973 > >     10, "baaaaaaaaa"
00:03:11 v #1974 > > }
00:03:11 v #1975 > > let rec returnLettersWithOddCountTests =
00:03:11 v #1976 > >     runAll (nameof returnLettersWithOddCountTests) _count solutions testCases
00:03:11 v #1977 > > returnLettersWithOddCountTests
00:03:11 v #1978 > > |> sortResultList
00:03:14 v #1979 > >
00:03:14 v #1980 > > ── [ 3.06s - stdout ] ──────────────────────────────────────────────────────────
00:03:14 v #1981 > > │
00:03:14 v #1982 > > │
00:03:14 v #1983 > > │ Test: returnLettersWithOddCountTests
00:03:14 v #1984 > > │
00:03:14 v #1985 > > │ Solution: 1
00:03:14 v #1986 > > │ Test case 1. A. Time: 380L
00:03:14 v #1987 > > │
00:03:14 v #1988 > > │ Solution: 2
00:03:14 v #1989 > > │ Test case 1. A. Time: 382L
00:03:14 v #1990 > > │
00:03:14 v #1991 > > │ Solution: 3
00:03:14 v #1992 > > │ Test case 1. A. Time: 371L
00:03:14 v #1993 > > │
00:03:14 v #1994 > > │ Solution: 9
00:03:14 v #1995 > > │ Test case 1. A. Time: 439L
00:03:14 v #1996 > > │
00:03:14 v #1997 > > │ Solution: 10
00:03:14 v #1998 > > │ Test case 1. A. Time: 440L
00:03:14 v #1999 > > │
00:03:14 v #2000 > > │ Input	| Expected  	| Result    	| Best
00:03:14 v #2001 > > │ ---  	| ---       	| ---       	| ---
00:03:14 v #2002 > > │ 1    	| a         	| a         	| (1, 380)
00:03:14 v #2003 > > │ 2    	| ba        	| ba        	| (1, 382)
00:03:14 v #2004 > > │ 3    	| aaa       	| aaa       	| (1, 371)
00:03:14 v #2005 > > │ 9    	| aaaaaaaaa 	| aaaaaaaaa 	| (1, 439)
00:03:14 v #2006 > > │ 10   	| baaaaaaaaa	| baaaaaaaaa	| (1, 440)
00:03:14 v #2007 > > │
00:03:14 v #2008 > > │ Average Ranking
00:03:14 v #2009 > > │ Test case 1. Average Time: 402L
00:03:14 v #2010 > > │
00:03:14 v #2011 > >
00:03:14 v #2012 > > ── markdown ────────────────────────────────────────────────────────────────────
00:03:14 v #2013 > > │ ## hasAnyPairCloseToEachotherTests
00:03:14 v #2014 > >
00:03:14 v #2015 > > ── markdown ────────────────────────────────────────────────────────────────────
00:03:14 v #2016 > > │ Test: HasAnyPairCloseToEachother
00:03:14 v #2017 > > │
00:03:14 v #2018 > > │ Solution: 0
00:03:14 v #2019 > > │ Test case 1. A. Time: 137L
00:03:14 v #2020 > > │
00:03:14 v #2021 > > │ Solution: 1,2
00:03:14 v #2022 > > │ Test case 1. A. Time: 186L
00:03:14 v #2023 > > │
00:03:14 v #2024 > > │ Solution: 3,5
00:03:14 v #2025 > > │ Test case 1. A. Time: 206L
00:03:14 v #2026 > > │
00:03:14 v #2027 > > │ Solution: 3,4,6
00:03:14 v #2028 > > │ Test case 1. A. Time: 149L
00:03:14 v #2029 > > │
00:03:14 v #2030 > > │ Solution: 2,4,6
00:03:14 v #2031 > > │ Test case 1. A. Time: 150L
00:03:14 v #2032 > > │
00:03:14 v #2033 > > │ Input   | Expected        | Result  | Best
00:03:14 v #2034 > > │ ---     | ---             | ---     | ---
00:03:14 v #2035 > > │ 0       | False           | False   | (1, 137)
00:03:14 v #2036 > > │ 1,2     | True            | True    | (1, 186)
00:03:14 v #2037 > > │ 3,5     | False           | False   | (1, 206)
00:03:14 v #2038 > > │ 3,4,6   | True            | True    | (1, 149)
00:03:14 v #2039 > > │ 2,4,6   | False           | False   | (1, 150)
00:03:14 v #2040 > > │
00:03:14 v #2041 > > │ Averages
00:03:14 v #2042 > > │ Test case 1. Average Time: 165L
00:03:14 v #2043 > > │
00:03:14 v #2044 > > │ Ranking
00:03:14 v #2045 > > │ Test case 1. Average Time: 165L
00:03:14 v #2046 > >
00:03:14 v #2047 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:14 v #2048 > > //// test
00:03:14 v #2049 > >
00:03:14 v #2050 > > let solutions = [[
00:03:14 v #2051 > >     "A",
00:03:14 v #2052 > >     fun (a: int[[]]) ->
00:03:14 v #2053 > >         let indices = System.Linq.Enumerable.Range(0, a.Length) |>
00:03:14 v #2054 > > System.Linq.Enumerable.ToArray
00:03:14 v #2055 > >         System.Array.Sort (a, indices)
00:03:14 v #2056 > >
00:03:14 v #2057 > >         indices
00:03:14 v #2058 > >         |> Array.take (a.Length - 1)
00:03:14 v #2059 > >         |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1)
00:03:14 v #2060 > > ]]
00:03:14 v #2061 > > let testCases = seq {
00:03:14 v #2062 > >     [[| 0 |]], false
00:03:14 v #2063 > >     [[| 1; 2 |]], true
00:03:14 v #2064 > >     [[| 3; 5 |]], false
00:03:14 v #2065 > >     [[| 3; 4; 6 |]], true
00:03:14 v #2066 > >     [[| 2; 4; 6 |]], false
00:03:14 v #2067 > > }
00:03:14 v #2068 > > let rec hasAnyPairCloseToEachotherTests =
00:03:14 v #2069 > >     runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases
00:03:14 v #2070 > > hasAnyPairCloseToEachotherTests
00:03:14 v #2071 > > |> sortResultList
00:03:16 v #2072 > >
00:03:16 v #2073 > > ── [ 1.55s - stdout ] ──────────────────────────────────────────────────────────
00:03:16 v #2074 > > │
00:03:16 v #2075 > > │
00:03:16 v #2076 > > │ Test: hasAnyPairCloseToEachotherTests
00:03:16 v #2077 > > │
00:03:16 v #2078 > > │ Solution: 0
00:03:16 v #2079 > > │ Test case 1. A. Time: 153L
00:03:16 v #2080 > > │
00:03:16 v #2081 > > │ Solution: 1,2
00:03:16 v #2082 > > │ Test case 1. A. Time: 84L
00:03:16 v #2083 > > │
00:03:16 v #2084 > > │ Solution: 3,5
00:03:16 v #2085 > > │ Test case 1. A. Time: 68L
00:03:16 v #2086 > > │
00:03:16 v #2087 > > │ Solution: 3,4,6
00:03:16 v #2088 > > │ Test case 1. A. Time: 74L
00:03:16 v #2089 > > │
00:03:16 v #2090 > > │ Solution: 2,4,6
00:03:16 v #2091 > > │ Test case 1. A. Time: 74L
00:03:16 v #2092 > > │
00:03:16 v #2093 > > │ Input	| Expected	| Result	| Best
00:03:16 v #2094 > > │ ---  	| ---     	| ---   	| ---
00:03:16 v #2095 > > │ 0    	| False   	| False 	| (1, 153)
00:03:16 v #2096 > > │ 1,2  	| True    	| True  	| (1, 84)
00:03:16 v #2097 > > │ 3,5  	| False   	| False 	| (1, 68)
00:03:16 v #2098 > > │ 3,4,6	| True    	| True  	| (1, 74)
00:03:16 v #2099 > > │ 2,4,6	| False   	| False 	| (1, 74)
00:03:16 v #2100 > > │
00:03:16 v #2101 > > │ Average Ranking
00:03:16 v #2102 > > │ Test case 1. Average Time: 90L
00:03:16 v #2103 > > │
00:03:16 v #2104 > 00:03:14 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 85818 }
00:03:16 v #2105 > 00:03:14 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:03:16 v #2106 > 00:03:15 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb to html
00:03:16 v #2107 > 00:03:15 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:16 v #2108 > 00:03:15 v #7 !   validate(nb)
00:03:17 v #2109 > 00:03:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:17 v #2110 > 00:03:16 v #9 !   return _pygments_highlight(
00:03:18 v #2111 > 00:03:16 v #10 ! [NbConvertApp] Writing 458105 bytes to /home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.html
00:03:18 v #2112 > 00:03:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 890 }
00:03:18 v #2113 > 00:03:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 890 }
00:03:18 v #2114 > 00:03:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:03:18 v #2115 > 00:03:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:03:18 v #2116 > 00:03:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:03:18 v #2117 > 00:03:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 86767 }
00:03:18 d #2118 runtime.execute_with_options_async / { exit_code = 0; output_length = 93584 }
00:03:18 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Perf.dib --retries 3
00:03:18 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 writeDibCode / output: Fs / path: Perf.dib
00:00:00 d #2 parseDibCode / output: Fs / file: Perf.dib
In [ ]:
{ pwsh ../apps/dir-tree-html/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path DirTreeHtml.dib"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path DirTreeHtml.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "DirTreeHtml.dib"])) }
00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:02 v #10 > >
00:00:02 v #11 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #12 > > │ # DirTreeHtml (Polyglot)
00:00:05 v #13 > >
00:00:05 v #14 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:05 v #15 > > #r
00:00:05 v #16 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:00:05 v #17 > > dard2.1/FSharp.Control.AsyncSeq.dll"
00:00:05 v #18 > > #r
00:00:05 v #19 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:00:05 v #20 > > 0/System.Reactive.dll"
00:00:05 v #21 > > #r
00:00:05 v #22 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:00:05 v #23 > > netstandard2.0/System.Reactive.Linq.dll"
00:00:05 v #24 > > #r
00:00:05 v #25 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
00:00:05 v #26 > > #r
00:00:05 v #27 > > @"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal
00:00:05 v #28 > > co.Markup.dll"
00:00:17 v #29 > >
00:00:17 v #30 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 v #31 > > #if !INTERACTIVE
00:00:17 v #32 > > open Lib
00:00:17 v #33 > > #endif
00:00:17 v #34 > >
00:00:17 v #35 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 v #36 > > open SpiralFileSystem.Operators
00:00:17 v #37 > > open Falco.Markup
00:00:17 v #38 > >
00:00:17 v #39 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 v #40 > > type FileSystemNode =
00:00:17 v #41 > >     | File of string * string * int64
00:00:17 v #42 > >     | Folder of string * string * FileSystemNode list
00:00:17 v #43 > >     | Root of FileSystemNode list
00:00:17 v #44 > >
00:00:17 v #45 > > let rec scanDirectory isRoot (basePath : string) (path : string) =
00:00:17 v #46 > >     let relativePath =
00:00:17 v #47 > >         path
00:00:17 v #48 > >         |> SpiralSm.replace basePath ""
00:00:17 v #49 > >         |> SpiralSm.replace "\\" "/"
00:00:17 v #50 > >         |> SpiralSm.replace "//" "/"
00:00:17 v #51 > >         |> SpiralSm.trim_start [[| '/' |]]
00:00:17 v #52 > >
00:00:17 v #53 > >     let directories =
00:00:17 v #54 > >         path
00:00:17 v #55 > >         |> System.IO.Directory.GetDirectories
00:00:17 v #56 > >         |> Array.toList
00:00:17 v #57 > >         |> List.sort
00:00:17 v #58 > >         |> List.map (scanDirectory false basePath)
00:00:17 v #59 > >     let files =
00:00:17 v #60 > >         path
00:00:17 v #61 > >         |> System.IO.Directory.GetFiles
00:00:17 v #62 > >         |> Array.toList
00:00:17 v #63 > >         |> List.sort
00:00:17 v #64 > >         |> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath,
00:00:17 v #65 > > System.IO.FileInfo(f).Length))
00:00:17 v #66 > >
00:00:17 v #67 > >     let children = directories @ files
00:00:17 v #68 > >     if isRoot
00:00:17 v #69 > >     then Root children
00:00:17 v #70 > >     else Folder (path |> System.IO.Path.GetFileName, relativePath, children)
00:00:17 v #71 > >
00:00:17 v #72 > > let rec generateHtml fsNode =
00:00:17 v #73 > >     let sizeLabel size =
00:00:17 v #74 > >         match float size with
00:00:17 v #75 > >         | size when size > 1024.0 * 1024.0 -> $"%.2f{size / 1024.0 / 1024.0} MB"
00:00:17 v #76 > >         | size when size > 1024.0 -> $"%.2f{size / 1024.0} KB"
00:00:17 v #77 > >         | size -> $"%.2f{size} B"
00:00:17 v #78 > >     match fsNode with
00:00:17 v #79 > >     | File (fileName, relativePath, size) ->
00:00:17 v #80 > >         Elem.div [[]] [[
00:00:17 v #81 > >             Text.raw "&#128196; "
00:00:17 v #82 > >             Elem.a [[
00:00:17 v #83 > >                 Attr.href $"""{relativePath}{if relativePath = "" then "" else
00:00:17 v #84 > > "/"}{fileName}"""
00:00:17 v #85 > >             ]] [[
00:00:17 v #86 > >                 Text.raw fileName
00:00:17 v #87 > >             ]]
00:00:17 v #88 > >             Elem.span [[]] [[
00:00:17 v #89 > >                 Text.raw $" ({size |> sizeLabel})"
00:00:17 v #90 > >             ]]
00:00:17 v #91 > >         ]]
00:00:17 v #92 > >     | Folder (folderName, relativePath, children) ->
00:00:17 v #93 > >         let size =
00:00:17 v #94 > >             let rec loop children =
00:00:17 v #95 > >                 children
00:00:17 v #96 > >                 |> List.sumBy (function
00:00:17 v #97 > >                     | File (_, _, size) -> size
00:00:17 v #98 > >                     | Folder (_, _, children)
00:00:17 v #99 > >                     | Root children -> loop children
00:00:17 v #100 > >                 )
00:00:17 v #101 > >             loop children
00:00:17 v #102 > >         Elem.details [[
00:00:17 v #103 > >             Attr.open' "true"
00:00:17 v #104 > >         ]] [[
00:00:17 v #105 > >             Elem.summary [[]] [[
00:00:17 v #106 > >                 Text.raw "&#128194; "
00:00:17 v #107 > >                 Elem.a [[
00:00:17 v #108 > >                     Attr.href relativePath
00:00:17 v #109 > >                 ]] [[
00:00:17 v #110 > >                     Text.raw folderName
00:00:17 v #111 > >                 ]]
00:00:17 v #112 > >                 Elem.span [[]] [[
00:00:17 v #113 > >                     Text.raw $" ({size |> sizeLabel})"
00:00:17 v #114 > >                 ]]
00:00:17 v #115 > >             ]]
00:00:17 v #116 > >             Elem.div [[]] [[
00:00:17 v #117 > >                 yield! children |> List.map generateHtml
00:00:17 v #118 > >             ]]
00:00:17 v #119 > >         ]]
00:00:17 v #120 > >     | Root children ->
00:00:17 v #121 > >         Elem.div [[]] [[
00:00:17 v #122 > >             yield! children |> List.map generateHtml
00:00:17 v #123 > >         ]]
00:00:17 v #124 > >
00:00:17 v #125 > > let generateHtmlForFileSystem root =
00:00:17 v #126 > >     $"""<!DOCTYPE html>
00:00:17 v #127 > > <html lang="en">
00:00:17 v #128 > > <head>
00:00:17 v #129 > >   <meta charset="UTF-8">
00:00:17 v #130 > >   <style>
00:00:17 v #131 > > body {{
00:00:17 v #132 > >     background-color: #222;
00:00:17 v #133 > >     color: #ccc;
00:00:17 v #134 > > }}
00:00:17 v #135 > > a {{
00:00:17 v #136 > >   color: #777;
00:00:17 v #137 > >   font-size: 15px;
00:00:17 v #138 > > }}
00:00:17 v #139 > > span {{
00:00:17 v #140 > >   font-size: 11px;
00:00:17 v #141 > > }}
00:00:17 v #142 > > div > div {{
00:00:17 v #143 > >   padding-left: 10px;
00:00:17 v #144 > > }}
00:00:17 v #145 > > details > div {{
00:00:17 v #146 > >   padding-left: 19px;
00:00:17 v #147 > > }}
00:00:17 v #148 > >   </style>
00:00:17 v #149 > > </head>
00:00:17 v #150 > > <body>
00:00:17 v #151 > >   {root |> generateHtml |> renderNode}
00:00:17 v #152 > > </body>
00:00:17 v #153 > > </html>
00:00:17 v #154 > > """
00:00:17 v #155 > >
00:00:17 v #156 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 v #157 > > //// test
00:00:17 v #158 > >
00:00:17 v #159 > > let expected = """<!DOCTYPE html>
00:00:17 v #160 > > <html lang="en">
00:00:17 v #161 > > <head>
00:00:17 v #162 > >   <meta charset="UTF-8">
00:00:17 v #163 > >   <style>
00:00:17 v #164 > > body {
00:00:17 v #165 > >     background-color: #222;
00:00:17 v #166 > >     color: #ccc;
00:00:17 v #167 > > }
00:00:17 v #168 > > a {
00:00:17 v #169 > >   color: #777;
00:00:17 v #170 > >   font-size: 15px;
00:00:17 v #171 > > }
00:00:17 v #172 > > span {
00:00:17 v #173 > >   font-size: 11px;
00:00:17 v #174 > > }
00:00:17 v #175 > > div > div {
00:00:17 v #176 > >   padding-left: 10px;
00:00:17 v #177 > > }
00:00:17 v #178 > > details > div {
00:00:17 v #179 > >   padding-left: 19px;
00:00:17 v #180 > > }
00:00:17 v #181 > >   </style>
00:00:17 v #182 > > </head>
00:00:17 v #183 > > <body>
00:00:17 v #184 > >   <div><details open="true"><summary>&#128194; <a href="_.root">_.root</a><span>
00:00:17 v #185 > > (10.00 B)</span></summary><div><details open="true"><summary>&#128194; <a
00:00:17 v #186 > > href="_.root/3">3</a><span> (6.00 B)</span></summary><div><details
00:00:17 v #187 > > open="true"><summary>&#128194; <a href="_.root/3/2">2</a><span> (3.00
00:00:17 v #188 > > B)</span></summary><div><details open="true"><summary>&#128194; <a
00:00:17 v #189 > > href="_.root/3/2/1">1</a><span> (1.00 B)</span></summary><div><div>&#128196; <a
00:00:17 v #190 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00
00:00:17 v #191 > > B)</span></div></div></details><div>&#128196; <a
00:00:17 v #192 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00
00:00:17 v #193 > > B)</span></div></div></details><div>&#128196; <a
00:00:17 v #194 > > href="_.root/3/file.txt">file.txt</a><span> (3.00
00:00:17 v #195 > > B)</span></div></div></details><div>&#128196; <a
00:00:17 v #196 > > href="_.root/file.txt">file.txt</a><span> (4.00
00:00:17 v #197 > > B)</span></div></div></details></div>
00:00:17 v #198 > > </body>
00:00:17 v #199 > > </html>
00:00:17 v #200 > > """
00:00:17 v #201 > >
00:00:17 v #202 > > let struct (tempFolder, disposable) = expected |> SpiralCrypto.hash_text |>
00:00:17 v #203 > > SpiralFileSystem.create_temp_dir'
00:00:17 v #204 > > let rec loop d n = async {
00:00:17 v #205 > >     if n >= 0 then
00:00:17 v #206 > >         tempFolder </> d |> System.IO.Directory.CreateDirectory |> ignore
00:00:17 v #207 > >         do!
00:00:17 v #208 > >             n
00:00:17 v #209 > >             |> string
00:00:17 v #210 > >             |> String.replicate (n + 1)
00:00:17 v #211 > >             |> SpiralFileSystem.write_all_text_async (tempFolder </> d </>
00:00:17 v #212 > > $"file.txt")
00:00:17 v #213 > >         do! loop $"{d}/{n}" (n - 1)
00:00:17 v #214 > > }
00:00:17 v #215 > > loop "_.root" 3
00:00:17 v #216 > > |> Async.RunSynchronously
00:00:17 v #217 > >
00:00:17 v #218 > > let html =
00:00:17 v #219 > >     scanDirectory true tempFolder tempFolder
00:00:17 v #220 > >     |> generateHtmlForFileSystem
00:00:17 v #221 > >
00:00:17 v #222 > > html
00:00:17 v #223 > > |> _assertEqual expected
00:00:17 v #224 > >
00:00:17 v #225 > > disposable.Dispose ()
00:00:17 v #226 > >
00:00:17 v #227 > > html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent
00:00:18 v #228 > >
00:00:18 v #229 > > ── [ 146.70ms - return value ] ─────────────────────────────────────────────────
00:00:18 v #230 > > │ <!DOCTYPE html>
00:00:18 v #231 > > │ <html lang="en">
00:00:18 v #232 > > │ <head>
00:00:18 v #233 > > │   <meta charset="UTF-8">
00:00:18 v #234 > > │   <style>
00:00:18 v #235 > > │ body {
00:00:18 v #236 > > │     background-color: #222;
00:00:18 v #237 > > │     color: #ccc;
00:00:18 v #238 > > │ }
00:00:18 v #239 > > │ a {
00:00:18 v #240 > > │   color: #777;
00:00:18 v #241 > > │   font-size: 15px;
00:00:18 v #242 > > │ }
00:00:18 v #243 > > │ span {
00:00:18 v #244 > > │   font-size: 11px;
00:00:18 v #245 > > │ }
00:00:18 v #246 > > │ div > div {
00:00:18 v #247 > > │   padding-left: 10px;
00:00:18 v #248 > > │ }
00:00:18 v #249 > > │ details > div {
00:00:18 v #250 > > │   padding-left: 19px;
00:00:18 v #251 > > │ }
00:00:18 v #252 > > │   </style>
00:00:18 v #253 > > │ </head>
00:00:18 v #254 > > │ <body>
00:00:18 v #255 > > │   <div><details open="true"><summary>&#128194; <a
00:00:18 v #256 > > href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details
00:00:18 v #257 > > open="true"><summary>&#128194; <a href="_.root/3">3</a><span> (6.00
00:00:18 v #258 > > B)</span></summary><div><details open="true"><summary>&#128194; <a
00:00:18 v #259 > > href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details
00:00:18 v #260 > > open="true"><summary>&#128194; <a href="_.root/3/2/1">1</a><span> (1.00
00:00:18 v #261 > > B)</span></summary><div><div>&#128196; <a
00:00:18 v #262 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00
00:00:18 v #263 > > B)</span></div></div></details><div>&#128196; <a
00:00:18 v #264 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00
00:00:18 v #265 > > B)</span></div></div></details><div>&#128196; <a
00:00:18 v #266 > > href="_.root/3/file.txt">file.txt</a><span> (3.00
00:00:18 v #267 > > B)</span></div></div></details><div>&#128196; <a
00:00:18 v #268 > > href="_.root/file.txt">file.txt</a><span> (4.00
00:00:18 v #269 > > B)</span></div></div></details></div>
00:00:18 v #270 > > │ </body>
00:00:18 v #271 > > │ </html>
00:00:18 v #272 > > │
00:00:18 v #273 > >
00:00:18 v #274 > > ── [ 154.82ms - stdout ] ───────────────────────────────────────────────────────
00:00:18 v #275 > > │ "<!DOCTYPE html>
00:00:18 v #276 > > │ <html lang="en">
00:00:18 v #277 > > │ <head>
00:00:18 v #278 > > │   <meta charset="UTF-8">
00:00:18 v #279 > > │   <style>
00:00:18 v #280 > > │ body {
00:00:18 v #281 > > │     background-color: #222;
00:00:18 v #282 > > │     color: #ccc;
00:00:18 v #283 > > │ }
00:00:18 v #284 > > │ a {
00:00:18 v #285 > > │   color: #777;
00:00:18 v #286 > > │   font-size: 15px;
00:00:18 v #287 > > │ }
00:00:18 v #288 > > │ span {
00:00:18 v #289 > > │   font-size: 11px;
00:00:18 v #290 > > │ }
00:00:18 v #291 > > │ div > div {
00:00:18 v #292 > > │   padding-left: 10px;
00:00:18 v #293 > > │ }
00:00:18 v #294 > > │ details > div {
00:00:18 v #295 > > │   padding-left: 19px;
00:00:18 v #296 > > │ }
00:00:18 v #297 > > │   </style>
00:00:18 v #298 > > │ </head>
00:00:18 v #299 > > │ <body>
00:00:18 v #300 > > │   <div><details open="true"><summary>&#128194; <a
00:00:18 v #301 > > href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details
00:00:18 v #302 > > open="true"><summary>&#128194; <a href="_.root/3">3</a><span> (6.00
00:00:18 v #303 > > B)</span></summary><div><details open="true"><summary>&#128194; <a
00:00:18 v #304 > > href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details
00:00:18 v #305 > > open="true"><summary>&#128194; <a href="_.root/3/2/1">1</a><span> (1.00
00:00:18 v #306 > > B)</span></summary><div><div>&#128196; <a
00:00:18 v #307 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00
00:00:18 v #308 > > B)</span></div></div></details><div>&#128196; <a
00:00:18 v #309 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00
00:00:18 v #310 > > B)</span></div></div></details><div>&#128196; <a
00:00:18 v #311 > > href="_.root/3/file.txt">file.txt</a><span> (3.00
00:00:18 v #312 > > B)</span></div></div></details><div>&#128196; <a
00:00:18 v #313 > > href="_.root/file.txt">file.txt</a><span> (4.00
00:00:18 v #314 > > B)</span></div></div></details></div>
00:00:18 v #315 > > │ </body>
00:00:18 v #316 > > │ </html>
00:00:18 v #317 > > │ "
00:00:18 v #318 > > │
00:00:18 v #319 > > │
00:00:18 v #320 > >
00:00:18 v #321 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 v #322 > > │ ## Arguments
00:00:18 v #323 > >
00:00:18 v #324 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 v #325 > > [[<RequireQualifiedAccess>]]
00:00:18 v #326 > > type Arguments =
00:00:18 v #327 > >     | [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string
00:00:18 v #328 > >     | [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string
00:00:18 v #329 > >
00:00:18 v #330 > >     interface Argu.IArgParserTemplate with
00:00:18 v #331 > >         member s.Usage =
00:00:18 v #332 > >             match s with
00:00:18 v #333 > >             | Dir _ -> nameof Dir
00:00:18 v #334 > >             | Html _ -> nameof Html
00:00:18 v #335 > >
00:00:18 v #336 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 v #337 > > //// test
00:00:18 v #338 > >
00:00:18 v #339 > > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
00:00:18 v #340 > >
00:00:18 v #341 > > ── [ 70.85ms - return value ] ──────────────────────────────────────────────────
00:00:18 v #342 > > │ "USAGE: dotnet-repl [--help] --dir <string> --html <string>
00:00:18 v #343 > > │
00:00:18 v #344 > > │ OPTIONS:
00:00:18 v #345 > > │
00:00:18 v #346 > > │     --dir <string>        Dir
00:00:18 v #347 > > │     --html <string>       Html
00:00:18 v #348 > > │     --help                display this list of options.
00:00:18 v #349 > > │ "
00:00:18 v #350 > > │
00:00:18 v #351 > >
00:00:18 v #352 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 v #353 > > │ ## main
00:00:18 v #354 > >
00:00:18 v #355 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 v #356 > > let main args =
00:00:18 v #357 > >     let argsMap = args |> Runtime.parseArgsMap<Arguments>
00:00:18 v #358 > >
00:00:18 v #359 > >     let dir =
00:00:18 v #360 > >         match argsMap.[[nameof Arguments.Dir]] with
00:00:18 v #361 > >         | [[ Arguments.Dir dir ]] -> Some dir
00:00:18 v #362 > >         | _ -> None
00:00:18 v #363 > >         |> Option.get
00:00:18 v #364 > >
00:00:18 v #365 > >     let htmlPath =
00:00:18 v #366 > >         match argsMap.[[nameof Arguments.Html]] with
00:00:18 v #367 > >         | [[ Arguments.Html html ]] -> Some html
00:00:18 v #368 > >         | _ -> None
00:00:18 v #369 > >         |> Option.get
00:00:18 v #370 > >
00:00:18 v #371 > >     let fileSystem = scanDirectory true dir dir
00:00:18 v #372 > >     let html = generateHtmlForFileSystem fileSystem
00:00:18 v #373 > >
00:00:18 v #374 > >     html |> SpiralFileSystem.write_all_text_async htmlPath
00:00:18 v #375 > >     |> Async.runWithTimeout 30000
00:00:18 v #376 > >     |> function
00:00:18 v #377 > >         | Some () -> 0
00:00:18 v #378 > >         | None -> 1
00:00:18 v #379 > >
00:00:18 v #380 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 v #381 > > //// test
00:00:18 v #382 > >
00:00:18 v #383 > > let args =
00:00:18 v #384 > >     System.Environment.GetEnvironmentVariable "ARGS"
00:00:18 v #385 > >     |> SpiralRuntime.split_args
00:00:18 v #386 > >     |> Result.toArray
00:00:18 v #387 > >     |> Array.collect id
00:00:18 v #388 > >
00:00:18 v #389 > > match args with
00:00:18 v #390 > > | [[||]] -> 0
00:00:18 v #391 > > | args -> if main args = 0 then 0 else failwith "main failed"
00:00:18 v #392 > >
00:00:18 v #393 > > ── [ 69.49ms - return value ] ──────────────────────────────────────────────────
00:00:18 v #394 > > │ <div class="dni-plaintext"><pre>0
00:00:18 v #395 > > │ </pre></div><style>
00:00:18 v #396 > > │ .dni-code-hint {
00:00:18 v #397 > > │     font-style: italic;
00:00:18 v #398 > > │     overflow: hidden;
00:00:18 v #399 > > │     white-space: nowrap;
00:00:18 v #400 > > │ }
00:00:18 v #401 > > │ .dni-treeview {
00:00:18 v #402 > > │     white-space: nowrap;
00:00:18 v #403 > > │ }
00:00:18 v #404 > > │ .dni-treeview td {
00:00:18 v #405 > > │     vertical-align: top;
00:00:18 v #406 > > │     text-align: start;
00:00:18 v #407 > > │ }
00:00:18 v #408 > > │ details.dni-treeview {
00:00:18 v #409 > > │     padding-left: 1em;
00:00:18 v #410 > > │ }
00:00:18 v #411 > > │ table td {
00:00:18 v #412 > > │     text-align: start;
00:00:18 v #413 > > │ }
00:00:18 v #414 > > │ table tr {
00:00:18 v #415 > > │     vertical-align: top;
00:00:18 v #416 > > │     margin: 0em 0px;
00:00:18 v #417 > > │ }
00:00:18 v #418 > > │ table tr td pre
00:00:18 v #419 > > │ {
00:00:18 v #420 > > │     vertical-align: top !important;
00:00:18 v #421 > > │     margin: 0em 0px !important;
00:00:18 v #422 > > │ }
00:00:18 v #423 > > │ table th {
00:00:18 v #424 > > │     text-align: start;
00:00:18 v #425 > > │ }
00:00:18 v #426 > > │ </style>
00:00:18 v #427 > 00:00:17 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13920 }
00:00:18 v #428 > 00:00:17 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:19 v #429 > 00:00:17 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb to html
00:00:19 v #430 > 00:00:17 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:19 v #431 > 00:00:17 v #7 !   validate(nb)
00:00:19 v #432 > 00:00:18 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:19 v #433 > 00:00:18 v #9 !   return _pygments_highlight(
00:00:19 v #434 > 00:00:18 v #10 ! [NbConvertApp] Writing 310055 bytes to /home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html
00:00:19 v #435 > 00:00:18 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 922 }
00:00:19 v #436 > 00:00:18 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 922 }
00:00:19 v #437 > 00:00:18 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:20 v #438 > 00:00:18 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:20 v #439 > 00:00:18 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:20 v #440 > 00:00:18 d #16 spiral.run / dib / { exit_code = 0; result_length = 14901 }
00:00:20 d #441 runtime.execute_with_options_async / { exit_code = 0; output_length = 18481 }
00:00:20 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path DirTreeHtml.dib
00:00:20 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 writeDibCode / output: Fs / path: DirTreeHtml.dib
00:00:00 d #2 parseDibCode / output: Fs / file: DirTreeHtml.dib
00:00:00 d #1 persistCodeProject / packages: [Argu; Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: DirTreeHtml / hash:  / code.Length: 4638
00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "/home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml" } }
00:00:00 v #2 >   Determining projects to restore...
00:00:01 v #3 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #4 >   The last full restore is still up to date. Nothing left to do.
00:00:01 v #5 >   Total time taken: 0 milliseconds
00:00:01 v #6 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #7 >   Restoring /home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj
00:00:01 v #8 >   Starting restore process.
00:00:01 v #9 >   Total time taken: 0 milliseconds
00:00:02 v #10 >   Restored /home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj (in 335 ms).
00:00:11 v #11 >   DirTreeHtml -> /home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/bin/Release/net9.0/linux-x64/DirTreeHtml.dll
00:00:12 v #12 >   DirTreeHtml -> /home/runner/work/polyglot/polyglot/apps/dir-tree-html/dist
00:00:12 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 728 }
In [ ]:
{ pwsh ../apps/scheduler/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Tasks.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Tasks.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Tasks.dib", "--retries", "3"])) }
00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:02 v #10 > >
00:00:02 v #11 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #12 > > │ ## Tasks (Polyglot)
00:00:05 v #13 > >
00:00:05 v #14 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:05 v #15 > > //// test
00:00:05 v #16 > >
00:00:05 v #17 > > open testing
00:00:09 v #18 > >
00:00:09 v #19 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 v #20 > > │ ## task_name
00:00:09 v #21 > >
00:00:09 v #22 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 v #23 > > nominal task_name = string
00:00:09 v #24 > >
00:00:09 v #25 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 v #26 > > │ ## manual_scheduling
00:00:09 v #27 > >
00:00:09 v #28 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 v #29 > > union manual_scheduling =
00:00:09 v #30 > >     | WithSuggestion
00:00:09 v #31 > >     | WithoutSuggestion
00:00:09 v #32 > >
00:00:09 v #33 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 v #34 > > │ ## recurrency_offset
00:00:09 v #35 > >
00:00:09 v #36 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 v #37 > > union recurrency_offset =
00:00:09 v #38 > >     | Days : i32
00:00:09 v #39 > >     | Weeks : i32
00:00:09 v #40 > >     | Months : i32
00:00:10 v #41 > >
00:00:10 v #42 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 v #43 > > │ ## day_of_week
00:00:10 v #44 > >
00:00:10 v #45 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 v #46 > > union day_of_week =
00:00:10 v #47 > >     | Sunday
00:00:10 v #48 > >     | Monday
00:00:10 v #49 > >     | Tuesday
00:00:10 v #50 > >     | Wednesday
00:00:10 v #51 > >     | Thursday
00:00:10 v #52 > >     | Friday
00:00:10 v #53 > >     | Saturday
00:00:10 v #54 > >
00:00:10 v #55 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 v #56 > > │ ## month
00:00:10 v #57 > >
00:00:10 v #58 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 v #59 > > union month =
00:00:10 v #60 > >     | January
00:00:10 v #61 > >     | February
00:00:10 v #62 > >     | March
00:00:10 v #63 > >     | April
00:00:10 v #64 > >     | May
00:00:10 v #65 > >     | June
00:00:10 v #66 > >     | July
00:00:10 v #67 > >     | August
00:00:10 v #68 > >     | September
00:00:10 v #69 > >     | October
00:00:10 v #70 > >     | November
00:00:10 v #71 > >     | December
00:00:10 v #72 > >
00:00:10 v #73 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 v #74 > > │ ## day
00:00:10 v #75 > >
00:00:10 v #76 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 v #77 > > nominal day = i32
00:00:10 v #78 > >
00:00:10 v #79 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 v #80 > > │ ## year
00:00:10 v #81 > >
00:00:10 v #82 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 v #83 > > nominal year = i32
00:00:11 v #84 > >
00:00:11 v #85 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 v #86 > > │ ## fixed_recurrency
00:00:11 v #87 > >
00:00:11 v #88 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 v #89 > > union fixed_recurrency =
00:00:11 v #90 > >     | Weekly : day_of_week
00:00:11 v #91 > >     | Monthly : day
00:00:11 v #92 > >     | Yearly : day * month
00:00:11 v #93 > >
00:00:11 v #94 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 v #95 > > │ ## recurrency
00:00:11 v #96 > >
00:00:11 v #97 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 v #98 > > union recurrency =
00:00:11 v #99 > >     | Offset : recurrency_offset
00:00:11 v #100 > >     | Fixed : list fixed_recurrency
00:00:11 v #101 > >
00:00:11 v #102 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 v #103 > > │ ## scheduling
00:00:11 v #104 > >
00:00:11 v #105 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 v #106 > > union scheduling =
00:00:11 v #107 > >     | Manual : manual_scheduling
00:00:11 v #108 > >     | Recurrent : recurrency
00:00:11 v #109 > >
00:00:11 v #110 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 v #111 > > │ ## task
00:00:11 v #112 > >
00:00:11 v #113 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 v #114 > > type task =
00:00:11 v #115 > >     {
00:00:11 v #116 > >         name : task_name
00:00:11 v #117 > >         scheduling : scheduling
00:00:11 v #118 > >     }
00:00:11 v #119 > >
00:00:11 v #120 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 v #121 > > │ ## date
00:00:11 v #122 > >
00:00:11 v #123 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 v #124 > > type date =
00:00:11 v #125 > >     {
00:00:11 v #126 > >         year : year
00:00:11 v #127 > >         month : month
00:00:11 v #128 > >         day : day
00:00:11 v #129 > >     }
00:00:12 v #130 > >
00:00:12 v #131 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 v #132 > > │ ## status
00:00:12 v #133 > >
00:00:12 v #134 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 v #135 > > union status =
00:00:12 v #136 > >     | Postponed : option ()
00:00:12 v #137 > >
00:00:12 v #138 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 v #139 > > │ ## event
00:00:12 v #140 > >
00:00:12 v #141 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 v #142 > > type event =
00:00:12 v #143 > >     {
00:00:12 v #144 > >         date : date
00:00:12 v #145 > >         status : status
00:00:12 v #146 > >     }
00:00:12 v #147 > >
00:00:12 v #148 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 v #149 > > │ ## task_template
00:00:12 v #150 > >
00:00:12 v #151 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 v #152 > > type task_template =
00:00:12 v #153 > >     {
00:00:12 v #154 > >         task : task
00:00:12 v #155 > >         events : list event
00:00:12 v #156 > >     }
00:00:12 v #157 > >
00:00:12 v #158 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 v #159 > > │ ## get_tasks (test)
00:00:12 v #160 > >
00:00:12 v #161 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 v #162 > > //// test
00:00:12 v #163 > >
00:00:12 v #164 > > inl get_tasks () : list task_template =
00:00:12 v #165 > >     [[
00:00:12 v #166 > >         {
00:00:12 v #167 > >             task =
00:00:12 v #168 > >                 {
00:00:12 v #169 > >                     name = task_name "01"
00:00:12 v #170 > >                     scheduling = Manual WithSuggestion
00:00:12 v #171 > >                 }
00:00:12 v #172 > >             events = [[]]
00:00:12 v #173 > >         }
00:00:12 v #174 > >         {
00:00:12 v #175 > >             task =
00:00:12 v #176 > >                 {
00:00:12 v #177 > >                     name = task_name "02"
00:00:12 v #178 > >                     scheduling = Manual WithSuggestion
00:00:12 v #179 > >                 }
00:00:12 v #180 > >             events = [[]]
00:00:12 v #181 > >         }
00:00:12 v #182 > >         {
00:00:12 v #183 > >             task =
00:00:12 v #184 > >                 {
00:00:12 v #185 > >                     name = task_name "03"
00:00:12 v #186 > >                     scheduling = Manual WithSuggestion
00:00:12 v #187 > >                 }
00:00:12 v #188 > >             events = [[]]
00:00:12 v #189 > >         }
00:00:12 v #190 > >     ]]
00:00:12 v #191 > >
00:00:12 v #192 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 v #193 > > //// test
00:00:12 v #194 > > ///! fsharp
00:00:12 v #195 > > ///! cuda
00:00:12 v #196 > > ///! rust
00:00:12 v #197 > > ///! typescript
00:00:12 v #198 > > ///! python
00:00:12 v #199 > >
00:00:12 v #200 > > get_tasks ()
00:00:12 v #201 > > |> sm'.format_debug
00:00:12 v #202 > > |> _assert sm'.contains "01"
00:00:27 v #203 > >
00:00:27 v #204 > > ── [ 14.91s - return value ] ───────────────────────────────────────────────────
00:00:27 v #205 > > │ .py output (Cuda):
00:00:27 v #206 > > │ __assert / actual: 01 / expected: UH2_1(v0='01',
00:00:27 v #207 > > v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_1(v0='02', v1=US1_0(v0=US0_0()),
00:00:27 v #208 > > v2=UH1_0(), v3=UH2_1(v0='03', v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_0())))
00:00:27 v #209 > > │
00:00:27 v #210 > > │ .rs output:
00:00:27 v #211 > > │ __assert / actual: "01" / expected: "UH2_1("01",
00:00:27 v #212 > > US1_0(US0_0), UH1_0, UH2_1("02", US1_0(US0_0), UH1_0, UH2_1("03", US1_0(US0_0),
00:00:27 v #213 > > UH1_0, UH2_0)))"
00:00:27 v #214 > > │
00:00:27 v #215 > > │ .ts output:
00:00:27 v #216 > > │ __assert / actual: 01 / expected: UH2_1 (01, US1_0 US0_0,
00:00:27 v #217 > > UH1_0, UH2_1 (02, US1_0 US0_0, UH1_0, UH2_1 (03, US1_0 US0_0, UH1_0, UH2_0)))
00:00:27 v #218 > > │
00:00:27 v #219 > > │ .py output:
00:00:27 v #220 > > │ __assert / actual: 01 / expected: UH2_1 ("01", US1_0 US0_0,
00:00:27 v #221 > > UH1_0, UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03", US1_0 US0_0, UH1_0,
00:00:27 v #222 > > UH2_0)))
00:00:27 v #223 > > │
00:00:27 v #224 > > │
00:00:27 v #225 > >
00:00:27 v #226 > > ── [ 14.92s - stdout ] ─────────────────────────────────────────────────────────
00:00:27 v #227 > > │ .fsx output:
00:00:27 v #228 > > │ __assert / actual: "01" / expected: "UH2_1
00:00:27 v #229 > > │   ("01", US1_0 US0_0, UH1_0,
00:00:27 v #230 > > │    UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03", US1_0 US0_0,
00:00:27 v #231 > > UH1_0, UH2_0)))"
00:00:27 v #232 > > │
00:00:27 v #233 > >
00:00:27 v #234 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:27 v #235 > > //// test
00:00:27 v #236 > > ///! fsharp
00:00:27 v #237 > > ///! cuda
00:00:27 v #238 > > ///! rust
00:00:27 v #239 > > ///! typescript
00:00:27 v #240 > > ///! python
00:00:27 v #241 > >
00:00:27 v #242 > > get_tasks ()
00:00:27 v #243 > > |> listm'.try_item 0i32
00:00:27 v #244 > > |> fun (Some task) => task.task.name
00:00:27 v #245 > > |> _assert_eq (task_name "01")
00:00:36 v #246 > >
00:00:36 v #247 > > ── [ 8.18s - return value ] ────────────────────────────────────────────────────
00:00:36 v #248 > > │ .py output (Cuda):
00:00:36 v #249 > > │ __assert_eq / actual: 01 / expected: 01
00:00:36 v #250 > > │
00:00:36 v #251 > > │ .rs output:
00:00:36 v #252 > > │ __assert_eq / actual: "01" / expected: "01"
00:00:36 v #253 > > │
00:00:36 v #254 > > │ .ts output:
00:00:36 v #255 > > │ __assert_eq / actual: 01 / expected: 01
00:00:36 v #256 > > │
00:00:36 v #257 > > │ .py output:
00:00:36 v #258 > > │ __assert_eq / actual: 01 / expected: 01
00:00:36 v #259 > > │
00:00:36 v #260 > > │
00:00:36 v #261 > >
00:00:36 v #262 > > ── [ 8.18s - stdout ] ──────────────────────────────────────────────────────────
00:00:36 v #263 > > │ .fsx output:
00:00:36 v #264 > > │ __assert_eq / actual: "01" / expected: "01"
00:00:36 v #265 > > │
00:00:36 v #266 > >
00:00:36 v #267 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 v #268 > > //// test
00:00:36 v #269 > > ///! fsharp
00:00:36 v #270 > > ////! cuda
00:00:36 v #271 > > ////! typescript
00:00:36 v #272 > > ////! python
00:00:36 v #273 > > ///// print_code
00:00:36 v #274 > >
00:00:36 v #275 > > inl print padding cols =
00:00:36 v #276 > >     ({ lines = [[]]; last_lines = [[]]; max_acc = 0i32 }, cols)
00:00:36 v #277 > >     ||> listm.fold fun { last_lines max_acc } lines =>
00:00:36 v #278 > >         inl { count max } =
00:00:36 v #279 > >             (lines, { count = 0i32; max = 0i32 })
00:00:36 v #280 > >             ||> listm.foldBack fun line { count max } => {
00:00:36 v #281 > >                 count = count + 1
00:00:36 v #282 > >                 max =
00:00:36 v #283 > >                     inl len = line |> sm'.length
00:00:36 v #284 > >                     if len > max
00:00:36 v #285 > >                     then len
00:00:36 v #286 > >                     else max
00:00:36 v #287 > >             }
00:00:36 v #288 > >         inl { lines } =
00:00:36 v #289 > >             (lines, { lines = [[]]; i = 0i32 })
00:00:36 v #290 > >             ||> listm.foldBack fun line { lines i } => {
00:00:36 v #291 > >                 lines =
00:00:36 v #292 > >                     inl last_line =
00:00:36 v #293 > >                         last_lines
00:00:36 v #294 > >                         |> listm'.try_item (count - i - 1)
00:00:36 v #295 > >                         |> optionm'.default_with fun () =>
00:00:36 v #296 > >                             " " |> sm'.replicate max_acc
00:00:36 v #297 > >                     inl line =
00:00:36 v #298 > >                         if padding = 0
00:00:36 v #299 > >                         then line
00:00:36 v #300 > >                         else
00:00:36 v #301 > >                             inl padding = " " |> sm'.replicate padding
00:00:36 v #302 > >                             $'$"{!line}{!padding}"'
00:00:36 v #303 > >                     inl line = line |> sm'.pad_right (max + padding) ' '
00:00:36 v #304 > >                     $'$"{!last_line}{!line}"' :: lines
00:00:36 v #305 > >                 i = i + 1
00:00:36 v #306 > >             }
00:00:36 v #307 > >         {
00:00:36 v #308 > >             lines
00:00:36 v #309 > >             last_lines = lines
00:00:36 v #310 > >             max_acc = max_acc + max + padding
00:00:36 v #311 > >         }
00:00:36 v #312 > >     |> fun x => x.lines
00:00:36 v #313 > >     |> listm'.box
00:00:36 v #314 > >     |> seq.of_list'
00:00:36 v #315 > >     |> sm'.concat "\n"
00:00:36 v #316 > >
00:00:36 v #317 > > inl col () =
00:00:36 v #318 > >     [[ "Task" ]]
00:00:36 v #319 > >     ++ (
00:00:36 v #320 > >         get_tasks ()
00:00:36 v #321 > >         |> listm.map fun task =>
00:00:36 v #322 > >             inl (task_name name) = task.task.name
00:00:36 v #323 > >             name
00:00:36 v #324 > >     )
00:00:36 v #325 > >
00:00:36 v #326 > > inl cols () =
00:00:36 v #327 > >     [[
00:00:36 v #328 > >         col ()
00:00:36 v #329 > >         col ()
00:00:36 v #330 > >         [[ "a"; "b"; "c"; "d"; "e" ]]
00:00:36 v #331 > >     ]]
00:00:36 v #332 > >
00:00:36 v #333 > > inl main () =
00:00:36 v #334 > >     cols ()
00:00:36 v #335 > >     |> print 1i32
00:00:36 v #336 > >     |> console.write_line
00:00:36 v #337 > >
00:00:36 v #338 > > ── [ 422.29ms - stdout ] ───────────────────────────────────────────────────────
00:00:36 v #339 > > │ Task Task a
00:00:36 v #340 > > │ 01   01   b
00:00:36 v #341 > > │ 02   02   c
00:00:36 v #342 > > │ 03   03   d
00:00:36 v #343 > > │           e
00:00:36 v #344 > > │
00:00:36 v #345 > 00:00:35 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 10901 }
00:00:36 v #346 > 00:00:35 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:37 v #347 > 00:00:35 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb to html
00:00:37 v #348 > 00:00:35 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:37 v #349 > 00:00:35 v #7 !   validate(nb)
00:00:37 v #350 > 00:00:36 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:37 v #351 > 00:00:36 v #9 !   return _pygments_highlight(
00:00:37 v #352 > 00:00:36 v #10 ! [NbConvertApp] Writing 309952 bytes to /home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.html
00:00:37 v #353 > 00:00:36 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 902 }
00:00:37 v #354 > 00:00:36 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 902 }
00:00:37 v #355 > 00:00:36 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:38 v #356 > 00:00:36 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:38 v #357 > 00:00:36 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:38 v #358 > 00:00:36 d #16 spiral.run / dib / { exit_code = 0; result_length = 11862 }
00:00:38 d #359 runtime.execute_with_options_async / { exit_code = 0; output_length = 15210 }
00:00:38 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Tasks.dib --retries 3
00:00:38 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 writeDibCode / output: Spi / path: Tasks.dib
00:00:00 d #2 parseDibCode / output: Spi / file: Tasks.dib
In [ ]:
{ pwsh ../apps/chat/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path chat_contract.dib --retries 5"; options = { command = ../../../deps/spiral/workspace/target/release/spiral dib --path chat_contract.dib --retries 5; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "chat_contract.dib", "--retries", "5"])) }
00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:02 v #10 > >
00:00:02 v #11 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #12 > > │ # chat_contract
00:00:05 v #13 > >
00:00:05 v #14 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:05 v #15 > > open rust
00:00:05 v #16 > > open rust.rust_operators
00:00:09 v #17 > >
00:00:09 v #18 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 v #19 > > //// test
00:00:09 v #20 > >
00:00:09 v #21 > > open testing
00:00:09 v #22 > >
00:00:09 v #23 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 v #24 > > │ ## chat_contract
00:00:09 v #25 > >
00:00:09 v #26 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 v #27 > > │ ### state
00:00:09 v #28 > >
00:00:09 v #29 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 v #30 > > type state =
00:00:09 v #31 > >     {
00:00:09 v #32 > >         version : u32
00:00:09 v #33 > >         account_set : near.iterable_set near.account_id
00:00:09 v #34 > >         alias_set : near.iterable_set sm'.std_string
00:00:09 v #35 > >         account_map : near.lookup_map near.account_id sm'.std_string
00:00:09 v #36 > >         alias_map : near.lookup_map sm'.std_string (mapm.hash_map
00:00:09 v #37 > > near.account_id (u64 * u32))
00:00:09 v #38 > >     }
00:00:09 v #39 > >
00:00:09 v #40 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 v #41 > > //// test
00:00:09 v #42 > > ///! rust -c
00:00:09 v #43 > >
00:00:09 v #44 > > ()
00:01:05 v #45 > >
00:01:05 v #46 > > ── [ 55.93s - return value ] ───────────────────────────────────────────────────
00:01:05 v #47 > > │ Installed near-sandbox into
00:01:05 v #48 > > /home/runner/work/polyglot/spiral/workspace/target/release/build/near-sandbox-ut
00:01:05 v #49 > > ils-c39df2faf0b47791/out/.near/near-sandbox-1.40.0_7dd0b5993577f592be15eb102e5a3
00:01:05 v #50 > > da37be66271/near-sandbox
00:01:05 v #51 > > │
00:01:05 v #52 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:01:05 v #53 > > total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209293011611 }
00:01:05 v #54 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:01:05 v #55 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:01:05 v #56 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:01:05 v #57 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:01:05 v #58 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602;
00:01:05 v #59 > > gas_burnt = 901211152271; tokens_burnt = 90121115227100000000 }
00:01:05 v #60 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry =
00:01:05 v #61 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
00:01:05 v #62 > > │
00:01:05 v #63 > > │
00:01:05 v #64 > > │
00:01:05 v #65 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2;
00:01:05 v #66 > > total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209293011611 }
00:01:05 v #67 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / {
00:01:05 v #68 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:01:05 v #69 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:01:05 v #70 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / {
00:01:05 v #71 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602;
00:01:05 v #72 > > gas_burnt = 901211152271; tokens_burnt = 90121115227100000000 }
00:01:05 v #73 > > │ 00:00:04 w #11 spiral_wasm.run / Error error ...n
00:01:05 v #74 > > Error error / { retry = 13; error = "{ receipt_outcomes_len = 1; retry = 13;
00:01:05 v #75 > > receipt_failures = [] }" }
00:01:05 v #76 > > │
00:01:05 v #77 > > │
00:01:05 v #78 > > │
00:01:05 v #79 > > │ 00:00:30 i #80 near_workspaces.print_usd / { retry =
00:01:05 v #80 > > 14; total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209293011611 }
00:01:05 v #81 > > │ 00:00:30 i #81 near_workspaces.print_usd / outcome / {
00:01:05 v #82 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:01:05 v #83 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:01:05 v #84 > > │ 00:00:30 i #82 near_workspaces.print_usd / outcome / {
00:01:05 v #85 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602;
00:01:05 v #86 > > gas_burnt = 901211152271; tokens_burnt = 90121115227100000000 }
00:01:05 v #87 > > │ 00:00:30 w #83 spiral_wasm.run / Error error / { retry
00:01:05 v #88 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }"
00:01:05 v #89 > > }
00:01:05 v #90 > > │
00:01:05 v #91 > > │
00:01:05 v #92 > > │
00:01:05 v #93 > > │ 00:00:32 i #86 near_workspaces.print_usd / { retry =
00:01:05 v #94 > > 15; total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209293011611 }
00:01:05 v #95 > > │ 00:00:32 i #87 near_workspaces.print_usd / outcome / {
00:01:05 v #96 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:01:05 v #97 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:01:05 v #98 > > │ 00:00:32 i #88 near_workspaces.print_usd / outcome / {
00:01:05 v #99 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602;
00:01:05 v #100 > > gas_burnt = 901211152271; tokens_burnt = 90121115227100000000 }
00:01:05 v #101 > > │ 00:00:32 w #89 spiral_wasm.run / Error error / { retry
00:01:05 v #102 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }"
00:01:05 v #103 > > }
00:01:05 v #104 > > │
00:01:05 v #105 > > │
00:01:05 v #106 > > │
00:01:05 v #107 > >
00:01:05 v #108 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:05 v #109 > > //// test
00:01:05 v #110 > > ///! rust -c
00:01:05 v #111 > >
00:01:05 v #112 > > trace Verbose (fun () => "") id
00:01:40 v #113 > >
00:01:40 v #114 > > ── [ 35.00s - return value ] ───────────────────────────────────────────────────
00:01:40 v #115 > > │
00:01:40 v #116 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:01:40 v #117 > > total_gas_burnt_usd = +0.000884; total_gas_burnt = 1323982858274 }
00:01:40 v #118 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:01:40 v #119 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:01:40 v #120 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:01:40 v #121 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:01:40 v #122 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679;
00:01:40 v #123 > > gas_burnt = 1015900998934; tokens_burnt = 101590099893400000000 }
00:01:40 v #124 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry =
00:01:40 v #125 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
00:01:40 v #126 > > │
00:01:40 v #127 > > │
00:01:40 v #128 > > │
00:01:40 v #129 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2;
00:01:40 v #130 > > total_gas_burnt_usd = +0.000884; total_gas_burnt = 1323982858274 }
00:01:40 v #131 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / {
00:01:40 v #132 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:01:40 v #133 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:01:40 v #134 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / {
00:01:40 v #135 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679;
00:01:40 v #136 > > gas_burnt = 1015900998934; tokens_burnt = 101590099893400000000 }
00:01:40 v #137 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry
00:01:40 v #138 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" }
00:01:40 v #139 > > │
00:01:40 v #140 > > │
00:01:40 v #141 > > │
00:01:40 v #142 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3;
00:01:40 v #143 > > total_gas_burnt_usd = +0.000884; total_gas_burnt ...{ receipt_outcomes_len = 1;
00:01:40 v #144 > > retry = 10; receipt_failures = [] }" }
00:01:40 v #145 > > │
00:01:40 v #146 > > │
00:01:40 v #147 > > │
00:01:40 v #148 > > │ 00:00:22 i #62 near_workspaces.print_usd / { retry =
00:01:40 v #149 > > 11; total_gas_burnt_usd = +0.000884; total_gas_burnt = 1323982858274 }
00:01:40 v #150 > > │ 00:00:22 i #63 near_workspaces.print_usd / outcome / {
00:01:40 v #151 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:01:40 v #152 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:01:40 v #153 > > │ 00:00:22 i #64 near_workspaces.print_usd / outcome / {
00:01:40 v #154 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679;
00:01:40 v #155 > > gas_burnt = 1015900998934; tokens_burnt = 101590099893400000000 }
00:01:40 v #156 > > │ 00:00:22 w #65 spiral_wasm.run / Error error / { retry
00:01:40 v #157 > > = 11; error = "{ receipt_outcomes_len = 1; retry = 11; receipt_failures = [] }"
00:01:40 v #158 > > }
00:01:40 v #159 > > │
00:01:40 v #160 > > │
00:01:40 v #161 > > │
00:01:40 v #162 > > │ 00:00:25 i #68 near_workspaces.print_usd / { retry =
00:01:40 v #163 > > 12; total_gas_burnt_usd = +0.001034; total_gas_burnt = 1547165420774 }
00:01:40 v #164 > > │ 00:00:25 i #69 near_workspaces.print_usd / outcome / {
00:01:40 v #165 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:01:40 v #166 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:01:40 v #167 > > │ 00:00:25 i #70 near_workspaces.print_usd / outcome / {
00:01:40 v #168 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679;
00:01:40 v #169 > > gas_burnt = 1015900998934; tokens_burnt = 101590099893400000000 }
00:01:40 v #170 > > │ 00:00:25 i #71 near_workspaces.print_usd / outcome / {
00:01:40 v #171 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000;
00:01:40 v #172 > > gas_burnt = 223182562500; tokens_burnt = 0 }
00:01:40 v #173 > > │
00:01:40 v #174 > >
00:01:40 v #175 > > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 v #176 > > │ ### new
00:01:40 v #177 > >
00:01:40 v #178 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 v #179 > > inl new () : state =
00:01:40 v #180 > >     {
00:01:40 v #181 > >         version = 2
00:01:40 v #182 > >         account_set = "account_set" |> sm'.byte_slice |> near.new_iterable_set
00:01:40 v #183 > >         alias_set = "alias_set" |> sm'.byte_slice |> near.new_iterable_set
00:01:40 v #184 > >         account_map = "account_map" |> sm'.byte_slice |> near.new_lookup_map
00:01:40 v #185 > >         alias_map = "alias_map" |> sm'.byte_slice |> near.new_lookup_map
00:01:40 v #186 > >     }
00:01:40 v #187 > >
00:01:40 v #188 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 v #189 > > //// test
00:01:40 v #190 > > ///! rust -c
00:01:40 v #191 > >
00:01:40 v #192 > > inl state = new ()
00:01:40 v #193 > > trace Verbose (fun () => "chat_contract") fun () => { state = state |>
00:01:40 v #194 > > sm'.format_debug }
00:01:40 v #195 > > trace Verbose (fun () => "") id
00:02:04 v #196 > >
00:02:04 v #197 > > ── [ 23.69s - return value ] ───────────────────────────────────────────────────
00:02:04 v #198 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet
00:02:04 v #199 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115,
00:02:04 v #200 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116,
00:02:04 v #201 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 0, prefix:
00:02:04 v #202 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix:
00:02:04 v #203 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97,
00:02:04 v #204 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108,
00:02:04 v #205 > > 105, 97, 115, 95, 109, 97, 112] }) }
00:02:04 v #206 > > │
00:02:04 v #207 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:02:04 v #208 > > total_gas_burnt_usd = +0.001326; total_gas_burnt = 1985177130541 }
00:02:04 v #209 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:02:04 v #210 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:02:04 v #211 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:02:04 v #212 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:02:04 v #213 > > is_success = true; gas_burnt_usd = +0.001120; tokens_burnt_usd = +0.001120;
00:02:04 v #214 > > gas_burnt = 1677095271201; tokens_burnt = 167709527120100000000 }
00:02:04 v #215 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry =
00:02:04 v #216 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
00:02:04 v #217 > > │
00:02:04 v #218 > > │
00:02:04 v #219 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet
00:02:04 v #220 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115,
00:02:04 v #221 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116,
00:02:04 v #222 > > 95, 115, 101,...271201; tokens_burnt = 167709527120100000000 }
00:02:04 v #223 > > │ 00:00:10 w #29 spiral_wasm.run / Error error / { retry
00:02:04 v #224 > > = 5; error = "{ receipt_outcomes_len = 1; retry = 5; receipt_failures = [] }" }
00:02:04 v #225 > > │
00:02:04 v #226 > > │
00:02:04 v #227 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet
00:02:04 v #228 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115,
00:02:04 v #229 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116,
00:02:04 v #230 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 0, prefix:
00:02:04 v #231 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix:
00:02:04 v #232 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97,
00:02:04 v #233 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108,
00:02:04 v #234 > > 105, 97, 115, 95, 109, 97, 112] }) }
00:02:04 v #235 > > │
00:02:04 v #236 > > │ 00:00:13 i #32 near_workspaces.print_usd / { retry = 6;
00:02:04 v #237 > > total_gas_burnt_usd = +0.001475; total_gas_burnt = 2208359693041 }
00:02:04 v #238 > > │ 00:00:13 i #33 near_workspaces.print_usd / outcome / {
00:02:04 v #239 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:02:04 v #240 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:02:04 v #241 > > │ 00:00:13 i #34 near_workspaces.print_usd / outcome / {
00:02:04 v #242 > > is_success = true; gas_burnt_usd = +0.001120; tokens_burnt_usd = +0.001120;
00:02:04 v #243 > > gas_burnt = 1677095271201; tokens_burnt = 167709527120100000000 }
00:02:04 v #244 > > │ 00:00:13 i #35 near_workspaces.print_usd / outcome / {
00:02:04 v #245 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000;
00:02:04 v #246 > > gas_burnt = 223182562500; tokens_burnt = 0 }
00:02:04 v #247 > > │
00:02:04 v #248 > >
00:02:04 v #249 > > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 v #250 > > │ ### is_valid_alias
00:02:04 v #251 > >
00:02:04 v #252 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 v #253 > > inl is_valid_alias (alias : sm'.std_string) : bool =
00:02:04 v #254 > >     inl alias' = alias |> sm'.from_std_string
00:02:04 v #255 > >     inl alias_len = alias' |> sm'.length
00:02:04 v #256 > >
00:02:04 v #257 > >     alias_len > 0i32
00:02:04 v #258 > >         && alias_len < 64
00:02:04 v #259 > >         && (alias' |> sm'.starts_with "-" |> not)
00:02:04 v #260 > >         && (alias' |> sm'.ends_with "-" |> not)
00:02:04 v #261 > >         && (alias' |> sm'.as_str |> sm'.chars |> iter.all (fun c => (c |>
00:02:04 v #262 > > sm'.char_is_alphanumeric) || c = '-'))
00:02:04 v #263 > >
00:02:04 v #264 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 v #265 > > //// test
00:02:04 v #266 > > ///! rust -c
00:02:04 v #267 > >
00:02:04 v #268 > > ""
00:02:04 v #269 > > |> sm'.to_std_string
00:02:04 v #270 > > |> is_valid_alias
00:02:04 v #271 > > |> _assert_eq false
00:02:45 v #272 > >
00:02:45 v #273 > > ── [ 40.52s - return value ] ───────────────────────────────────────────────────
00:02:45 v #274 > > │
00:02:45 v #275 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:02:45 v #276 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230973339727 }
00:02:45 v #277 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:02:45 v #278 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:02:45 v #279 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:02:45 v #280 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:02:45 v #281 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616;
00:02:45 v #282 > > gas_burnt = 922891480387; tokens_burnt = 92289148038700000000 }
00:02:45 v #283 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry =
00:02:45 v #284 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
00:02:45 v #285 > > │
00:02:45 v #286 > > │
00:02:45 v #287 > > │
00:02:45 v #288 > > │ 00:00:05 i #8 near_workspaces.print_usd / { retry = 2;
00:02:45 v #289 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230973339727 }
00:02:45 v #290 > > │ 00:00:05 i #9 near_workspaces.print_usd / outcome / {
00:02:45 v #291 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:02:45 v #292 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:02:45 v #293 > > │ 00:00:05 i #10 near_workspaces.print_usd / outcome / {
00:02:45 v #294 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616;
00:02:45 v #295 > > gas_burnt = 922891480387; tokens_burnt = 92289148038700000000 }
00:02:45 v #296 > > │ 00:00:05 w #11 spiral_wasm.run / Error error / { retry
00:02:45 v #297 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" }
00:02:45 v #298 > > │
00:02:45 v #299 > > │
00:02:45 v #300 > > │
00:02:45 v #301 > > │ 00:00:07 i #14 near_workspaces.print_usd / { retry = 3;
00:02:45 v #302 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 12...n / Error error / {
00:02:45 v #303 > > retry = 13; error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures =
00:02:45 v #304 > > [] }" }
00:02:45 v #305 > > │
00:02:45 v #306 > > │
00:02:45 v #307 > > │
00:02:45 v #308 > > │ 00:00:29 i #80 near_workspaces.print_usd / { retry =
00:02:45 v #309 > > 14; total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230973339727 }
00:02:45 v #310 > > │ 00:00:29 i #81 near_workspaces.print_usd / outcome / {
00:02:45 v #311 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:02:45 v #312 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:02:45 v #313 > > │ 00:00:29 i #82 near_workspaces.print_usd / outcome / {
00:02:45 v #314 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616;
00:02:45 v #315 > > gas_burnt = 922891480387; tokens_burnt = 92289148038700000000 }
00:02:45 v #316 > > │ 00:00:29 w #83 spiral_wasm.run / Error error / { retry
00:02:45 v #317 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }"
00:02:45 v #318 > > }
00:02:45 v #319 > > │
00:02:45 v #320 > > │
00:02:45 v #321 > > │
00:02:45 v #322 > > │ 00:00:31 i #86 near_workspaces.print_usd / { retry =
00:02:45 v #323 > > 15; total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230973339727 }
00:02:45 v #324 > > │ 00:00:31 i #87 near_workspaces.print_usd / outcome / {
00:02:45 v #325 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:02:45 v #326 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:02:45 v #327 > > │ 00:00:31 i #88 near_workspaces.print_usd / outcome / {
00:02:45 v #328 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616;
00:02:45 v #329 > > gas_burnt = 922891480387; tokens_burnt = 92289148038700000000 }
00:02:45 v #330 > > │ 00:00:32 w #89 spiral_wasm.run / Error error / { retry
00:02:45 v #331 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }"
00:02:45 v #332 > > }
00:02:45 v #333 > > │
00:02:45 v #334 > > │
00:02:45 v #335 > > │
00:02:45 v #336 > >
00:02:45 v #337 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:45 v #338 > > //// test
00:02:45 v #339 > > ///! rust -c
00:02:45 v #340 > >
00:02:45 v #341 > > "a-"
00:02:45 v #342 > > |> sm'.to_std_string
00:02:45 v #343 > > |> is_valid_alias
00:02:45 v #344 > > |> _assert_eq false
00:03:23 v #345 > >
00:03:23 v #346 > > ── [ 38.60s - return value ] ───────────────────────────────────────────────────
00:03:23 v #347 > > │
00:03:23 v #348 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:03:23 v #349 > > total_gas_burnt_usd = +0.000824; total_gas_burnt = 1233000541094 }
00:03:23 v #350 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:03:23 v #351 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:03:23 v #352 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:03:23 v #353 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:03:23 v #354 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618;
00:03:23 v #355 > > gas_burnt = 924918681754; tokens_burnt = 92491868175400000000 }
00:03:23 v #356 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry =
00:03:23 v #357 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
00:03:23 v #358 > > │
00:03:23 v #359 > > │
00:03:23 v #360 > > │
00:03:23 v #361 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2;
00:03:23 v #362 > > total_gas_burnt_usd = +0.000824; total_gas_burnt = 1233000541094 }
00:03:23 v #363 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / {
00:03:23 v #364 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:03:23 v #365 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:03:23 v #366 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / {
00:03:23 v #367 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618;
00:03:23 v #368 > > gas_burnt = 924918681754; tokens_burnt = 92491868175400000000 }
00:03:23 v #369 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry
00:03:23 v #370 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" }
00:03:23 v #371 > > │
00:03:23 v #372 > > │
00:03:23 v #373 > > │
00:03:23 v #374 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3;
00:03:23 v #375 > > total_gas_burnt_usd = +0.000824; total_gas_burnt = 12...n / Error error / {
00:03:23 v #376 > > retry = 13; error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures =
00:03:23 v #377 > > [] }" }
00:03:23 v #378 > > │
00:03:23 v #379 > > │
00:03:23 v #380 > > │
00:03:23 v #381 > > │ 00:00:28 i #80 near_workspaces.print_usd / { retry =
00:03:23 v #382 > > 14; total_gas_burnt_usd = +0.000824; total_gas_burnt = 1233000541094 }
00:03:23 v #383 > > │ 00:00:28 i #81 near_workspaces.print_usd / outcome / {
00:03:23 v #384 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:03:23 v #385 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:03:23 v #386 > > │ 00:00:28 i #82 near_workspaces.print_usd / outcome / {
00:03:23 v #387 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618;
00:03:23 v #388 > > gas_burnt = 924918681754; tokens_burnt = 92491868175400000000 }
00:03:23 v #389 > > │ 00:00:28 w #83 spiral_wasm.run / Error error / { retry
00:03:23 v #390 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }"
00:03:23 v #391 > > }
00:03:23 v #392 > > │
00:03:23 v #393 > > │
00:03:23 v #394 > > │
00:03:23 v #395 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry =
00:03:23 v #396 > > 15; total_gas_burnt_usd = +0.000824; total_gas_burnt = 1233000541094 }
00:03:23 v #397 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / {
00:03:23 v #398 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:03:23 v #399 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:03:23 v #400 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / {
00:03:23 v #401 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618;
00:03:23 v #402 > > gas_burnt = 924918681754; tokens_burnt = 92491868175400000000 }
00:03:23 v #403 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry
00:03:23 v #404 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }"
00:03:23 v #405 > > }
00:03:23 v #406 > > │
00:03:23 v #407 > > │
00:03:23 v #408 > > │
00:03:23 v #409 > >
00:03:23 v #410 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:23 v #411 > > //// test
00:03:23 v #412 > > ///! rust -c
00:03:23 v #413 > >
00:03:23 v #414 > > "a-a"
00:03:23 v #415 > > |> sm'.to_std_string
00:03:23 v #416 > > |> is_valid_alias
00:03:23 v #417 > > |> _assert_eq true
00:04:03 v #418 > >
00:04:03 v #419 > > ── [ 40.13s - return value ] ───────────────────────────────────────────────────
00:04:03 v #420 > > │
00:04:03 v #421 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:04:03 v #422 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234594300893 }
00:04:03 v #423 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:04:03 v #424 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:04:03 v #425 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:04:03 v #426 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:04:03 v #427 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619;
00:04:03 v #428 > > gas_burnt = 926512441553; tokens_burnt = 92651244155300000000 }
00:04:03 v #429 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry =
00:04:03 v #430 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
00:04:03 v #431 > > │
00:04:03 v #432 > > │
00:04:03 v #433 > > │
00:04:03 v #434 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2;
00:04:03 v #435 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234594300893 }
00:04:03 v #436 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / {
00:04:03 v #437 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:04:03 v #438 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:04:03 v #439 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / {
00:04:03 v #440 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619;
00:04:03 v #441 > > gas_burnt = 926512441553; tokens_burnt = 92651244155300000000 }
00:04:03 v #442 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry
00:04:03 v #443 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" }
00:04:03 v #444 > > │
00:04:03 v #445 > > │
00:04:03 v #446 > > │
00:04:03 v #447 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3;
00:04:03 v #448 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 12...n / Error error / {
00:04:03 v #449 > > retry = 13; error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures =
00:04:03 v #450 > > [] }" }
00:04:03 v #451 > > │
00:04:03 v #452 > > │
00:04:03 v #453 > > │
00:04:03 v #454 > > │ 00:00:29 i #80 near_workspaces.print_usd / { retry =
00:04:03 v #455 > > 14; total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234594300893 }
00:04:03 v #456 > > │ 00:00:29 i #81 near_workspaces.print_usd / outcome / {
00:04:03 v #457 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:04:03 v #458 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:04:03 v #459 > > │ 00:00:29 i #82 near_workspaces.print_usd / outcome / {
00:04:03 v #460 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619;
00:04:03 v #461 > > gas_burnt = 926512441553; tokens_burnt = 92651244155300000000 }
00:04:03 v #462 > > │ 00:00:29 w #83 spiral_wasm.run / Error error / { retry
00:04:03 v #463 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }"
00:04:03 v #464 > > }
00:04:03 v #465 > > │
00:04:03 v #466 > > │
00:04:03 v #467 > > │
00:04:03 v #468 > > │ 00:00:31 i #86 near_workspaces.print_usd / { retry =
00:04:03 v #469 > > 15; total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234594300893 }
00:04:03 v #470 > > │ 00:00:31 i #87 near_workspaces.print_usd / outcome / {
00:04:03 v #471 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:04:03 v #472 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:04:03 v #473 > > │ 00:00:31 i #88 near_workspaces.print_usd / outcome / {
00:04:03 v #474 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619;
00:04:03 v #475 > > gas_burnt = 926512441553; tokens_burnt = 92651244155300000000 }
00:04:03 v #476 > > │ 00:00:31 w #89 spiral_wasm.run / Error error / { retry
00:04:03 v #477 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }"
00:04:03 v #478 > > }
00:04:03 v #479 > > │
00:04:03 v #480 > > │
00:04:03 v #481 > > │
00:04:03 v #482 > >
00:04:03 v #483 > > ── markdown ────────────────────────────────────────────────────────────────────
00:04:03 v #484 > > │ ### generate_cid
00:04:03 v #485 > >
00:04:03 v #486 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:03 v #487 > > inl generate_cid (content : am'.vec u8) : sm'.std_string =
00:04:03 v #488 > >     !\($'"  fn encode_u64(value: u64) -> Vec<u8> { //"') : ()
00:04:03 v #489 > >     !\($'"    let mut buffer = unsigned_varint::encode::u64_buffer(); //"') : ()
00:04:03 v #490 > >     !\($'"    unsigned_varint::encode::u64(value, &mut buffer).to_vec() //"') :
00:04:03 v #491 > > ()
00:04:03 v #492 > >     !\($'"  } //"') : ()
00:04:03 v #493 > >
00:04:03 v #494 > >     !\($'"  fn sha256_hash(content: &[[u8]]) -> Vec<u8> { //"') : ()
00:04:03 v #495 > >     !\($'"    let mut hasher: sha2::Sha256 = sha2::Digest::new(); //"') : ()
00:04:03 v #496 > >     !\($'"    sha2::Digest::update(&mut hasher, content); //"') : ()
00:04:03 v #497 > >     !\($'"    sha2::Digest::finalize(hasher).to_vec() //"') : ()
00:04:03 v #498 > >     !\($'"  } //"') : ()
00:04:03 v #499 > >
00:04:03 v #500 > >     !\($'"  let version: u8 = 1; //"') : ()
00:04:03 v #501 > >     !\($'"  let codec_raw: u64 = 0x55; //"') : ()
00:04:03 v #502 > >
00:04:03 v #503 > >     !\($'"  let codec_bytes = encode_u64(codec_raw); //"') : ()
00:04:03 v #504 > >     !\($'"  let hash_result = sha256_hash(&!content); //"') : ()
00:04:03 v #505 > >     !\($'"  let multihash = std::iter::once(0x12) //"') : ()
00:04:03 v #506 > >     !\($'"    .chain(std::iter::once(32)) //"') : ()
00:04:03 v #507 > >     !\($'"    .chain(hash_result.into_iter()) //"') : ()
00:04:03 v #508 > >     !\($'"    .collect(); //"') : ()
00:04:03 v #509 > >     !\($'"  let cid_bytes = [[vec\![[version]], codec_bytes,
00:04:03 v #510 > > multihash]].concat(); //"') : ()
00:04:03 v #511 > >     !\($'"  let result = multibase::encode(multibase::Base::Base32Lower,
00:04:03 v #512 > > &cid_bytes); //"') : ()
00:04:03 v #513 > >     !\($'"result"')
00:04:04 v #514 > >
00:04:04 v #515 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:04 v #516 > > //// test
00:04:04 v #517 > > ///! rust -c -d multibase sha2 unsigned-varint
00:04:04 v #518 > >
00:04:04 v #519 > > ;[[]]
00:04:04 v #520 > > |> am'.to_vec
00:04:04 v #521 > > |> generate_cid
00:04:04 v #522 > > |> sm'.from_std_string
00:04:04 v #523 > > |> _assert_eq "bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
00:04:44 v #524 > >
00:04:44 v #525 > > ── [ 40.46s - return value ] ───────────────────────────────────────────────────
00:04:44 v #526 > > │
00:04:44 v #527 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:04:44 v #528 > > total_gas_burnt_usd = +0.000876; total_gas_burnt = 1311882872930 }
00:04:44 v #529 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:04:44 v #530 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:04:44 v #531 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:04:44 v #532 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:04:44 v #533 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671;
00:04:44 v #534 > > gas_burnt = 1003801013590; tokens_burnt = 100380101359000000000 }
00:04:44 v #535 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry =
00:04:44 v #536 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
00:04:44 v #537 > > │
00:04:44 v #538 > > │
00:04:44 v #539 > > │
00:04:44 v #540 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2;
00:04:44 v #541 > > total_gas_burnt_usd = +0.000876; total_gas_burnt = 1311882872930 }
00:04:44 v #542 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / {
00:04:44 v #543 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:04:44 v #544 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:04:44 v #545 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / {
00:04:44 v #546 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671;
00:04:44 v #547 > > gas_burnt = 1003801013590; tokens_burnt = 100380101359000000000 }
00:04:44 v #548 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry
00:04:44 v #549 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" }
00:04:44 v #550 > > │
00:04:44 v #551 > > │
00:04:44 v #552 > > │
00:04:44 v #553 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3;
00:04:44 v #554 > > total_gas_burnt_usd = +0.000876; total_gas_burnt ...Error error / { retry = 13;
00:04:44 v #555 > > error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures = [] }" }
00:04:44 v #556 > > │
00:04:44 v #557 > > │
00:04:44 v #558 > > │
00:04:44 v #559 > > │ 00:00:28 i #80 near_workspaces.print_usd / { retry =
00:04:44 v #560 > > 14; total_gas_burnt_usd = +0.000876; total_gas_burnt = 1311882872930 }
00:04:44 v #561 > > │ 00:00:28 i #81 near_workspaces.print_usd / outcome / {
00:04:44 v #562 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:04:44 v #563 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:04:44 v #564 > > │ 00:00:28 i #82 near_workspaces.print_usd / outcome / {
00:04:44 v #565 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671;
00:04:44 v #566 > > gas_burnt = 1003801013590; tokens_burnt = 100380101359000000000 }
00:04:44 v #567 > > │ 00:00:28 w #83 spiral_wasm.run / Error error / { retry
00:04:44 v #568 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }"
00:04:44 v #569 > > }
00:04:44 v #570 > > │
00:04:44 v #571 > > │
00:04:44 v #572 > > │
00:04:44 v #573 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry =
00:04:44 v #574 > > 15; total_gas_burnt_usd = +0.000876; total_gas_burnt = 1311882872930 }
00:04:44 v #575 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / {
00:04:44 v #576 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:04:44 v #577 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:04:44 v #578 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / {
00:04:44 v #579 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671;
00:04:44 v #580 > > gas_burnt = 1003801013590; tokens_burnt = 100380101359000000000 }
00:04:44 v #581 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry
00:04:44 v #582 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }"
00:04:44 v #583 > > }
00:04:44 v #584 > > │
00:04:44 v #585 > > │
00:04:44 v #586 > > │
00:04:44 v #587 > >
00:04:44 v #588 > > ── markdown ────────────────────────────────────────────────────────────────────
00:04:44 v #589 > > │ ### claim_alias
00:04:44 v #590 > >
00:04:44 v #591 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:44 v #592 > > inl claim_alias (state : rust.ref (rust.mut' state)) (alias : sm'.std_string) :
00:04:44 v #593 > > () =
00:04:44 v #594 > >     inl account_set : rust.ref (rust.mut' (near.iterable_set near.account_id)) =
00:04:44 v #595 > >         !\($'$"&mut !state.1"')
00:04:44 v #596 > >
00:04:44 v #597 > >     inl alias_set : rust.ref (rust.mut' (near.iterable_set sm'.std_string)) =
00:04:44 v #598 > >         !\($'$"&mut !state.2"')
00:04:44 v #599 > >
00:04:44 v #600 > >     inl account_map : rust.ref (rust.mut' (near.lookup_map near.account_id
00:04:44 v #601 > > sm'.std_string)) =
00:04:44 v #602 > >         !\($'$"&mut !state.3"')
00:04:44 v #603 > >
00:04:44 v #604 > >     inl alias_map : rust.ref (rust.mut' (near.lookup_map sm'.std_string
00:04:44 v #605 > > (mapm.hash_map near.account_id (u64 * u32)))) =
00:04:44 v #606 > >         !\($'$"&mut !state.4"')
00:04:44 v #607 > >
00:04:44 v #608 > >     inl signer_account_id = near.signer_account_id ()
00:04:44 v #609 > >     inl predecessor_account_id = near.predecessor_account_id ()
00:04:44 v #610 > >     inl block_timestamp = near.block_timestamp ()
00:04:44 v #611 > >
00:04:44 v #612 > >     trace Debug
00:04:44 v #613 > >         fun () => "chat_contract.claim_alias"
00:04:44 v #614 > >         fun () => {
00:04:44 v #615 > >             alias
00:04:44 v #616 > >             block_timestamp
00:04:44 v #617 > >             signer_account_id = signer_account_id |> sm'.to_string'
00:04:44 v #618 > >             predecessor_account_id = predecessor_account_id |> sm'.to_string'
00:04:44 v #619 > >         }
00:04:44 v #620 > >
00:04:44 v #621 > >     if alias |> is_valid_alias |> not
00:04:44 v #622 > >     then near.panic_str "chat_contract.claim_alias / invalid alias" . true
00:04:44 v #623 > >     else false
00:04:44 v #624 > >     |> ignore
00:04:44 v #625 > >
00:04:44 v #626 > >     inl account_alias =
00:04:44 v #627 > >         account_map
00:04:44 v #628 > >         |> near.lookup_get signer_account_id
00:04:44 v #629 > >         |> optionm'.cloned
00:04:44 v #630 > >
00:04:44 v #631 > >     match account_alias |> optionm'.unbox with
00:04:44 v #632 > >     | Some account_alias when account_alias =. alias =>
00:04:44 v #633 > >         trace Warning
00:04:44 v #634 > >             fun () => "chat_contract.claim_alias / alias already claimed"
00:04:44 v #635 > >             fun () => { account_alias = account_alias |> sm'.format_debug }
00:04:44 v #636 > >     | account_alias' =>
00:04:44 v #637 > >         trace Debug
00:04:44 v #638 > >             fun () => "chat_contract.claim_alias"
00:04:44 v #639 > >             fun () => { account_alias = account_alias |> sm'.format_debug }
00:04:44 v #640 > >
00:04:44 v #641 > >         match account_alias' with
00:04:44 v #642 > >         | Some account_alias =>
00:04:44 v #643 > >             !\($'"    !alias_map //"') : ()
00:04:44 v #644 > >             !\($'"      .get_mut(&!account_alias) //"') : ()
00:04:44 v #645 > >             !\($'"      .unwrap() //"') : ()
00:04:44 v #646 > >             !\\(signer_account_id, $'"      .remove(&$0); //"') : ()
00:04:44 v #647 > >         | None => ()
00:04:44 v #648 > >
00:04:44 v #649 > >         !\\((signer_account_id, alias), $'"  !account_map.insert($0.clone(),
00:04:44 v #650 > > $1.clone()); //"') : ()
00:04:44 v #651 > >
00:04:44 v #652 > >         account_set |> near.iterable_set_insert signer_account_id |> ignore
00:04:44 v #653 > >         alias_set |> near.iterable_set_insert alias |> ignore
00:04:44 v #654 > >
00:04:44 v #655 > >         !\\(alias, $'"  let new_alias_account_map = match !alias_map.get(&$0) {
00:04:44 v #656 > > //"') : ()
00:04:44 v #657 > >         !\($'"    None => { //"') : ()
00:04:44 v #658 > >         !\($'"      let mut new_map = std::collections::HashMap::new(); //"') :
00:04:44 v #659 > > ()
00:04:44 v #660 > >         !\\((signer_account_id, block_timestamp), $'"      new_map.insert($0,
00:04:44 v #661 > > ($1, 0u32)); //"') : ()
00:04:44 v #662 > >         !\($'"      new_map //"') : ()
00:04:44 v #663 > >         !\($'"    } //"') : ()
00:04:44 v #664 > >         !\($'"    Some(accounts) => { //"') : ()
00:04:44 v #665 > >         !\($'"      let mut accounts_vec = accounts.iter().collect::<Vec<_>>();
00:04:44 v #666 > > //"') : ()
00:04:44 v #667 > >         !\($'"      accounts_vec.sort_unstable_by_key(|(_, (_, index))| index);
00:04:44 v #668 > > //"') : ()
00:04:44 v #669 > >         !\($'"      let mut new_map = accounts_vec //"') : ()
00:04:44 v #670 > >         !\($'"        .iter() //"') : ()
00:04:44 v #671 > >         !\($'"        .enumerate() //"') : ()
00:04:44 v #672 > >         !\($'"        .map(|(i, (signer_account_id, (timestamp, _)))| { //"') :
00:04:44 v #673 > > ()
00:04:44 v #674 > >         !\($'"          ((*signer_account_id).clone(), (*timestamp, i as u32))
00:04:44 v #675 > > //"') : ()
00:04:44 v #676 > >         !\($'"        }) //"') : ()
00:04:44 v #677 > >         !\($'"        .collect::<std::collections::HashMap<_, _>>(); //"') : ()
00:04:44 v #678 > >         !\\(signer_account_id, $'"      new_map.insert($0, (!block_timestamp,
00:04:44 v #679 > > accounts_vec.len() as u32)); //"') : ()
00:04:44 v #680 > >         !\($'"      new_map //"') : ()
00:04:44 v #681 > >         !\($'"    } //"') : ()
00:04:44 v #682 > >         !\($'"  }; //"') : ()
00:04:44 v #683 > >
00:04:44 v #684 > >         !\\(alias, $'"  !alias_map.insert($0, new_alias_account_map); //"') : ()
00:04:44 v #685 > >
00:04:44 v #686 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:44 v #687 > > //// test
00:04:44 v #688 > > ///! rust -c
00:04:44 v #689 > >
00:04:44 v #690 > > inl state = new ()
00:04:44 v #691 > > inl version = state.version
00:04:44 v #692 > > inl account_set = state.account_set
00:04:44 v #693 > > inl alias_set = state.alias_set
00:04:44 v #694 > > inl account_map = state.account_map
00:04:44 v #695 > > inl alias_map = state.alias_map
00:04:44 v #696 > > inl version = join version
00:04:44 v #697 > > inl account_set = join account_set
00:04:44 v #698 > > inl alias_set = join alias_set
00:04:44 v #699 > > inl account_map = join account_map
00:04:44 v #700 > > inl alias_map = join alias_map
00:04:44 v #701 > > inl state : rust.ref (rust.mut' state) =
00:04:44 v #702 > >     !\\(
00:04:44 v #703 > >         version,
00:04:44 v #704 > >         $'$"&mut ($0, !account_set, !alias_set, !account_map, !alias_map)"'
00:04:44 v #705 > >     )
00:04:44 v #706 > >
00:04:44 v #707 > > "alias1"
00:04:44 v #708 > > |> sm'.to_std_string
00:04:44 v #709 > > |> claim_alias state
00:04:44 v #710 > >
00:04:44 v #711 > > trace Verbose
00:04:44 v #712 > >     fun () => "chat_contract"
00:04:44 v #713 > >     fun () => { state = state |> sm'.format_debug }
00:04:44 v #714 > >
00:04:44 v #715 > > trace Debug (fun () => "") id
00:05:06 v #716 > >
00:05:06 v #717 > > ── [ 22.29s - return value ] ───────────────────────────────────────────────────
00:05:06 v #718 > > │ 00:00:00 d #1 chat_contract.claim_alias / { alias =
00:05:06 v #719 > > "alias1"; block_timestamp = 1737984373871011059; signer_account_id =
00:05:06 v #720 > > "dev-20250127132612-85305951612479"; predecessor_account_id =
00:05:06 v #721 > > "dev-20250127132612-85305951612479" }
00:05:06 v #722 > > │ 00:00:00 d #2 chat_contract.claim_alias / {
00:05:06 v #723 > > account_alias = None }
00:05:06 v #724 > > │ 00:00:00 v #3 chat_contract / { state = (2, IterableSet
00:05:06 v #725 > > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115,
00:05:06 v #726 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116,
00:05:06 v #727 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 1, prefix:
00:05:06 v #728 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix:
00:05:06 v #729 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97,
00:05:06 v #730 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108,
00:05:06 v #731 > > 105, 97, 115, 95, 109, 97, 112] }) }
00:05:06 v #732 > > │
00:05:06 v #733 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:05:06 v #734 > > total_gas_burnt_usd = +0.002518; total_gas_burnt = 3769866753622 }
00:05:06 v #735 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:05:06 v #736 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:05:06 v #737 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:05:06 v #738 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:05:06 v #739 > > is_success = true; gas_burnt_usd = +0.002312; tokens_burnt_usd = +0.002312;
00:05:06 v #740 > > gas_burnt = 3461784894282; tokens_burnt = 346178489428200000000 }
00:05:06 v #741 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry =
00:05:06 v #742 > > 1; error...ner_account_id = "dev-20250127132621-21094189477269";
00:05:06 v #743 > > predecessor_account_id = "dev-20250127132621-21094189477269" }
00:05:06 v #744 > > │ 00:00:00 d #2 chat_contract.claim_alias / {
00:05:06 v #745 > > account_alias = None }
00:05:06 v #746 > > │ 00:00:00 v #3 chat_contract / { state = (2, IterableSet
00:05:06 v #747 > > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115,
00:05:06 v #748 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116,
00:05:06 v #749 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 1, prefix:
00:05:06 v #750 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix:
00:05:06 v #751 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97,
00:05:06 v #752 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108,
00:05:06 v #753 > > 105, 97, 115, 95, 109, 97, 112] }) }
00:05:06 v #754 > > │
00:05:06 v #755 > > │ 00:00:11 i #26 near_workspaces.print_usd / { retry = 5;
00:05:06 v #756 > > total_gas_burnt_usd = +0.002667; total_gas_burnt = 3993049316122 }
00:05:06 v #757 > > │ 00:00:11 i #27 near_workspaces.print_usd / outcome / {
00:05:06 v #758 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:05:06 v #759 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:05:06 v #760 > > │ 00:00:11 i #28 near_workspaces.print_usd / outcome / {
00:05:06 v #761 > > is_success = true; gas_burnt_usd = +0.002312; tokens_burnt_usd = +0.002312;
00:05:06 v #762 > > gas_burnt = 3461784894282; tokens_burnt = 346178489428200000000 }
00:05:06 v #763 > > │ 00:00:11 i #29 near_workspaces.print_usd / outcome / {
00:05:06 v #764 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000;
00:05:06 v #765 > > gas_burnt = 223182562500; tokens_burnt = 0 }
00:05:06 v #766 > > │
00:05:06 v #767 > >
00:05:06 v #768 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:06 v #769 > > //// test
00:05:06 v #770 > > ///! rust \"-c=-e=\\\"chat_contract.claim_alias / invalid alias\\\"\"
00:05:06 v #771 > >
00:05:06 v #772 > > ""
00:05:06 v #773 > > |> sm'.to_std_string
00:05:06 v #774 > > |> claim_alias (
00:05:06 v #775 > >     inl state = new ()
00:05:06 v #776 > >     inl version = state.version
00:05:06 v #777 > >     inl account_set = state.account_set
00:05:06 v #778 > >     inl alias_set = state.alias_set
00:05:06 v #779 > >     inl account_map = state.account_map
00:05:06 v #780 > >     inl alias_map = state.alias_map
00:05:06 v #781 > >     !\\(version, $'$"&mut ($0, !account_set, !alias_set, !account_map,
00:05:06 v #782 > > !alias_map)"')
00:05:06 v #783 > > )
00:05:06 v #784 > > trace Debug (fun () => "") id
00:05:20 v #785 > >
00:05:20 v #786 > > ── [ 13.52s - return value ] ───────────────────────────────────────────────────
00:05:20 v #787 > > │
00:05:20 v #788 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:05:20 v #789 > > total_gas_burnt_usd = +0.001293; total_gas_burnt = 1935536140168 }
00:05:20 v #790 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:05:20 v #791 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:05:20 v #792 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:05:20 v #793 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:05:20 v #794 > > is_success = false; gas_burnt_usd = +0.000938; tokens_burnt_usd = +0.000938;
00:05:20 v #795 > > gas_burnt = 1404271718328; tokens_burnt = 140427171832800000000 }
00:05:20 v #796 > > │ 00:00:02 i #5 near_workspaces.print_usd / outcome / {
00:05:20 v #797 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000;
00:05:20 v #798 > > gas_burnt = 223182562500; tokens_burnt = 0 }
00:05:20 v #799 > > │ 00:00:02 c #6 spiral_wasm.run / Ok (Some error) / {
00:05:20 v #800 > > retry = 1; error = { receipt_outcomes_len = 2; retry = 1; receipt_failures = [
00:05:20 v #801 > > │     ExecutionOutcome {
00:05:20 v #802 > > │         transaction_hash:
00:05:20 v #803 > > 4s9fDkRnHkfZAbHm12PhRvXWjCCphUzWFwrXPZ1KnSXN,
00:05:20 v #804 > > │         block_hash:
00:05:20 v #805 > > EYQs3BpZUP6XpC6EQNBnGADzbQ7EDQXNuA2SZjjrikt2,
00:05:20 v #806 > > │         logs: [],
00:05:20 v #807 > > │         receipt_ids: [
00:05:20 v #808 > > │             EhnfStKKKMGKZDtib18WwuVp8A4KDkqAsVS2M27EHQNY,
00:05:20 v #809 > > │         ],
00:05:20 v #810 > > │         gas_burnt: NearGas {
00:05:20 v #811 > > │             inner: 1404271718328,
00:05:20 v #812 > > │         },
00:05:20 v #813 > > │         tokens_burnt: NearToken {
00:05:20 v #814 > > │             inner: 140427171832800000000,
00:05:20 v #815 > > │         },
00:05:20 v #816 > > │         executor_id: AccountId(
00:05:20 v #817 > > │             "dev-20250127132635-78063810542317",
00:05:20 v #818 > > │         ),
00:05:20 v #819 > > │         status: Failure(ActionError(ActionError { index:
00:05:20 v #820 > > Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked:
00:05:20 v #821 > > chat_contract.claim_alias / invalid alias")) })),
00:05:20 v #822 > > │     },
00:05:20 v #823 > > │ ] } }
00:05:20 v #824 > > │
00:05:20 v #825 > >
00:05:20 v #826 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:20 v #827 > > //// test
00:05:20 v #828 > > ///! rust -cd borsh
00:05:20 v #829 > >
00:05:20 v #830 > > inl state' = new ()
00:05:20 v #831 > > inl state = state'
00:05:20 v #832 > > inl version = state.version
00:05:20 v #833 > > inl account_set = state.account_set
00:05:20 v #834 > > inl alias_set = state.alias_set
00:05:20 v #835 > > inl account_map = state.account_map
00:05:20 v #836 > > inl alias_map = state.alias_map
00:05:20 v #837 > > inl version = join version
00:05:20 v #838 > > inl account_set = join account_set
00:05:20 v #839 > > inl alias_set = join alias_set
00:05:20 v #840 > > inl account_map = join account_map
00:05:20 v #841 > > inl alias_map = join alias_map
00:05:20 v #842 > >
00:05:20 v #843 > > inl state =
00:05:20 v #844 > >     !\\(
00:05:20 v #845 > >         (version, account_set, alias_set),
00:05:20 v #846 > >         $'$"&mut ($0, $1, $2, !account_map, !alias_map)"'
00:05:20 v #847 > >     )
00:05:20 v #848 > >
00:05:20 v #849 > > "alias1"
00:05:20 v #850 > > |> sm'.to_std_string
00:05:20 v #851 > > |> claim_alias state
00:05:20 v #852 > >
00:05:20 v #853 > > "alias1"
00:05:20 v #854 > > |> sm'.to_std_string
00:05:20 v #855 > > |> claim_alias state
00:05:20 v #856 > >
00:05:20 v #857 > > "alias1"
00:05:20 v #858 > > |> sm'.to_std_string
00:05:20 v #859 > > |> claim_alias state
00:05:20 v #860 > >
00:05:20 v #861 > > inl account_set' : rust.ref (near.iterable_set near.account_id) =
00:05:20 v #862 > >     !\($'$"&!state.1"')
00:05:20 v #863 > >
00:05:20 v #864 > > inl alias_set' : rust.ref (near.iterable_set sm'.std_string) =
00:05:20 v #865 > >     !\($'$"&!state.2"')
00:05:20 v #866 > >
00:05:20 v #867 > > inl account_set' =
00:05:20 v #868 > >     account_set'
00:05:20 v #869 > >     |> iter.iter_ref''
00:05:20 v #870 > >     |> iter.cloned
00:05:20 v #871 > >     |> iter_collect
00:05:20 v #872 > >
00:05:20 v #873 > > inl alias_set' =
00:05:20 v #874 > >     alias_set'
00:05:20 v #875 > >     |> iter.iter_ref''
00:05:20 v #876 > >     |> iter.cloned
00:05:20 v #877 > >     |> iter_collect
00:05:20 v #878 > >     |> am'.vec_map sm'.from_std_string
00:05:20 v #879 > >
00:05:20 v #880 > > trace Verbose
00:05:20 v #881 > >     fun () => "chat_contract"
00:05:20 v #882 > >     fun () => {
00:05:20 v #883 > >         account_set' = account_set' |> sm'.format_debug
00:05:20 v #884 > >         alias_set' = alias_set' |> sm'.format_debug
00:05:20 v #885 > >         state = state |> sm'.format_debug
00:05:20 v #886 > >     }
00:05:20 v #887 > >
00:05:20 v #888 > > trace Debug (fun () => "") id
00:05:20 v #889 > >
00:05:20 v #890 > > account_set'
00:05:20 v #891 > > |> am'.vec_len
00:05:20 v #892 > > |> convert
00:05:20 v #893 > > |> _assert_eq 1u32
00:05:20 v #894 > >
00:05:20 v #895 > > alias_set'
00:05:20 v #896 > > |> am'.from_vec_base
00:05:20 v #897 > > |> _assert_eq' ;[[ "alias1" ]]
00:05:35 v #898 > >
00:05:35 v #899 > > ── [ 14.56s - return value ] ───────────────────────────────────────────────────
00:05:35 v #900 > > │ 00:00:00 d #1 chat_contract.claim_alias / { alias =
00:05:35 v #901 > > "alias1"; block_timestamp = 1737984411002418394; signer_account_id =
00:05:35 v #902 > > "dev-20250127132649-85067130384290"; predecessor_account_id =
00:05:35 v #903 > > "dev-20250127132649-85067130384290" }
00:05:35 v #904 > > │ 00:00:00 d #2 chat_contract.claim_alias / {
00:05:35 v #905 > > account_alias = None }
00:05:35 v #906 > > │ 00:00:00 d #3 chat_contract.claim_alias / { alias =
00:05:35 v #907 > > "alias1"; block_timestamp = 1737984411002418394; signer_account_id =
00:05:35 v #908 > > "dev-20250127132649-85067130384290"; predecessor_account_id =
00:05:35 v #909 > > "dev-20250127132649-85067130384290" }
00:05:35 v #910 > > │ 00:00:00 d #4 chat_contract.claim_alias / {
00:05:35 v #911 > > account_alias = Some("alias1") }
00:05:35 v #912 > > │ 00:00:00 d #5 chat_contract.claim_alias / { alias =
00:05:35 v #913 > > "alias1"; block_timestamp = 1737984411002418394; signer_account_id =
00:05:35 v #914 > > "dev-20250127132649-85067130384290"; predecessor_account_id =
00:05:35 v #915 > > "dev-20250127132649-85067130384290" }
00:05:35 v #916 > > │ 00:00:00 d #6 chat_contract.claim_alias / {
00:05:35 v #917 > > account_alias = Some("alias1") }
00:05:35 v #918 > > │ 00:00:00 v #7 chat_contract / { account_set' =
00:05:35 v #919 > > [AccountId("dev-20250127132649-85067130384290")]; alias_set' = ["alias1"]; state
00:05:35 v #920 > > = (2, IterableSet { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117,
00:05:35 v #921 > > 110, 116, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99,
00:05:35 v #922 > > 111, 117, 110, 116, 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector
00:05:35 v #923 > > { len: 1, prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index:
00:05:35 v #924 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } },
00:05:35 v #925 > > LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] },
00:05:35 v #926 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 109, 97, 112] }) }
00:05:35 v #927 > > │
00:05:35 v #928 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1;
00:05:35 v #929 > > total_gas_burnt_usd = +0.004482; total_gas_burnt = 6708945056653 }
00:05:35 v #930 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / {
00:05:35 v #931 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206;
00:05:35 v #932 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
00:05:35 v #933 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / {
00:05:35 v #934 > > is_success = true; gas_burnt_usd = +0.004127; tokens_burnt_usd = +0.004127;
00:05:35 v #935 > > gas_burnt = 6177680634813; tokens_burnt = 617768063481300000000 }
00:05:35 v #936 > > │ 00:00:02 i #5 near_workspaces.print_usd / outcome / {
00:05:35 v #937 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000;
00:05:35 v #938 > > gas_burnt = 223182562500; tokens_burnt = 0 }
00:05:35 v #939 > > │
00:05:35 v #940 > >
00:05:35 v #941 > > ── markdown ────────────────────────────────────────────────────────────────────
00:05:35 v #942 > > │ ### get_account_info
00:05:35 v #943 > >
00:05:35 v #944 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:35 v #945 > > inl get_account_info
00:05:35 v #946 > >     (state : rust.ref state)
00:05:35 v #947 > >     (account_id : near.account_id)
00:05:35 v #948 > >     : optionm'.option' (sm'.std_string * (u64 * u32))
00:05:35 v #949 > >     =
00:05:35 v #950 > >     inl account_map : rust.ref (near.lookup_map near.account_id sm'.std_string)
00:05:35 v #951 > > =
00:05:35 v #952 > >         !\($'$"&!state.3"')
00:05:35 v #953 > >
00:05:35 v #954 > >     inl alias_map : rust.ref (near.lookup_map sm'.std_string (mapm.hash_map
00:05:35 v #955 > > near.account_id (u64 * u32))) =
00:05:35 v #956 > >         !\($'$"&!state.4"')
00:05:35 v #957 > >
00:05:35 v #958 > >     !\\(account_id, $'"let result = !account_map.get(&$0).and_then(|alias| {
00:05:35 v #959 > > //"') : ()
00:05:35 v #960 > >     !\($'"    !alias_map //"') : ()
00:05:35 v #961 > >     !\($'"      .get(alias) //"') : ()
00:05:35 v #962 > >     !\($'"      .map(|accounts| { //"') : ()
00:05:35 v #963 > >     !\($'"          let result = (alias.clone(),
00:05:35 v #964 > > *accounts.get(&!account_id).unwrap()); //"') : ()
00:05:35 v #965 > >     !\($'"          (result.0, result.1.0, result.1.1) //"') : ()
00:05:35 v #966 > >     !\($'"      }) //"') : ()
00:05:35 v #967 > >     !\($'"}); //"') : ()
00:05:35 v #968 > >
00:05:35 v #969 > >     inl result = !\($'"result"')
00:05:35 v #970 > >
00:05:35 v #971 > >     trace Debug
00:05:35 v #972 > >         fun () => "chat_contract.get_account_info"
00:05:35 v #973 > >         fun () => { account_id result }
00:05:35 v #974 > >
00:05:35 v #975 > >     trace Debug (fun () => "") id
00:05:35 v #976 > >
00:05:35 v #977 > >     result
00:05:35 v #978 > >
00:05:35 v #979 > > ── markdown ────────────────────────────────────────────────────────────────────
00:05:35 v #980 > > │ ### main
00:05:35 v #981 > >
00:05:35 v #982 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:35 v #983 > > ///! _
00:05:35 v #984 > >
00:05:35 v #985 > > inl main () =
00:05:35 v #986 > >     !\($'"} //"') : ()
00:05:35 v #987 > >
00:05:35 v #988 > >     !\($'"#[[near_sdk::near_bindgen]] //"') : ()
00:05:35 v #989 > >
00:05:35 v #990 > >     !\($'"#[[derive( //"') : ()
00:05:35 v #991 > >     !\($'"  near_sdk::PanicOnDefault, //"') : ()
00:05:35 v #992 > >     !\($'"  borsh::BorshDeserialize, //"') : ()
00:05:35 v #993 > >     !\($'"  borsh::BorshSerialize, //"') : ()
00:05:35 v #994 > >     !\($'")]] //"') : ()
00:05:35 v #995 > >
00:05:35 v #996 > >     !\($'"pub struct State ( //"') : ()
00:05:35 v #997 > >
00:05:35 v #998 > >     !\($'"/*"') : ()
00:05:35 v #999 > >     (null () : rust.type_emit state) |> ignore
00:05:35 v #1000 > >     !\($'"*/ )"') : ()
00:05:35 v #1001 > >
00:05:35 v #1002 > >     inl new_ () =
00:05:35 v #1003 > >         !\($'"#[[init]] //"') : ()
00:05:35 v #1004 > >         !\($'"pub fn new() -> Self { // 1"') : ()
00:05:35 v #1005 > >
00:05:35 v #1006 > >         (!\($'"true; /*"') : bool) |> ignore
00:05:35 v #1007 > >
00:05:35 v #1008 > >         (null () : rust.type_emit ()) |> ignore
00:05:35 v #1009 > >
00:05:35 v #1010 > >         (!\($'"true; */"') : bool) |> ignore
00:05:35 v #1011 > >
00:05:35 v #1012 > >         inl result = new ()
00:05:35 v #1013 > >
00:05:35 v #1014 > >         $'let _result = !result in _result |> (fun x ->
00:05:35 v #1015 > > Fable.Core.RustInterop.emitRustExpr x $"Self($0) // x") // 2' : ()
00:05:35 v #1016 > >
00:05:35 v #1017 > >         !\($'"} // 2."') : ()
00:05:35 v #1018 > >
00:05:35 v #1019 > >         !\($'"} // 1."') : ()
00:05:35 v #1020 > >
00:05:35 v #1021 > >         2
00:05:35 v #1022 > >
00:05:35 v #1023 > >     inl is_valid_alias () =
00:05:35 v #1024 > >         !\($'"fn is_valid_alias(alias: String) -> bool { //"') : ()
00:05:35 v #1025 > >         inl alias = !\($'$"alias"')
00:05:35 v #1026 > >         inl result = alias |> is_valid_alias
00:05:35 v #1027 > >         $'let _result = !result in _result |> (fun x ->
00:05:35 v #1028 > > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : ()
00:05:35 v #1029 > >         !\($'"} //"') : ()
00:05:35 v #1030 > >         1
00:05:35 v #1031 > >
00:05:35 v #1032 > >     inl generate_cid () =
00:05:35 v #1033 > >         !\($'"pub fn generate_cid( //"') : ()
00:05:35 v #1034 > >         !\($'"  &self, //"') : ()
00:05:35 v #1035 > >         !\($'"  content: Vec<u8>, //"') : ()
00:05:35 v #1036 > >         !\($'") -> String { //"') : ()
00:05:35 v #1037 > >         inl content = !\($'$"content"')
00:05:35 v #1038 > >         inl result = generate_cid content
00:05:35 v #1039 > >         $'let _result = !result in _result |> (fun x ->
00:05:35 v #1040 > > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : ()
00:05:35 v #1041 > >         !\($'"} //"') : ()
00:05:35 v #1042 > >         2
00:05:35 v #1043 > >
00:05:35 v #1044 > >     inl generate_cid_borsh () =
00:05:35 v #1045 > >         !\($'"#[[result_serializer(borsh)]] //"') : ()
00:05:35 v #1046 > >         !\($'"pub fn generate_cid_borsh( //"') : ()
00:05:35 v #1047 > >         !\($'"  &self, //"') : ()
00:05:35 v #1048 > >         !\($'"  #[[serializer(borsh)]] content: Vec<u8>, //"') : ()
00:05:35 v #1049 > >         !\($'") -> String { //"') : ()
00:05:35 v #1050 > >         !\($'"  self.generate_cid(content) //"') : ()
00:05:35 v #1051 > >         !\($'"} //"') : ()
00:05:35 v #1052 > >         1
00:05:35 v #1053 > >
00:05:35 v #1054 > >     inl claim_alias () =
00:05:35 v #1055 > >         !\($'"pub fn claim_alias( //"') : ()
00:05:35 v #1056 > >         !\($'"  &mut self, //"') : ()
00:05:35 v #1057 > >         !\($'"  alias: String, //"') : ()
00:05:35 v #1058 > >         !\($'") { //"') : ()
00:05:35 v #1059 > >
00:05:35 v #1060 > >         inl state = !\($'$"&mut self.0"')
00:05:35 v #1061 > >         inl alias = !\($'$"alias"')
00:05:35 v #1062 > >
00:05:35 v #1063 > >         inl result = claim_alias state alias
00:05:35 v #1064 > >         trace Debug (fun () => "") (join id)
00:05:35 v #1065 > >
00:05:35 v #1066 > >         !\($'"} //"') : ()
00:05:35 v #1067 > >
00:05:35 v #1068 > >         !\($'"} //"') : ()
00:05:35 v #1069 > >
00:05:35 v #1070 > >         !\($'"} //"') : ()
00:05:35 v #1071 > >
00:05:35 v #1072 > >         3
00:05:35 v #1073 > >
00:05:35 v #1074 > >     inl get_account_info () =
00:05:35 v #1075 > >         !\($'"pub fn get_account_info( //"') : ()
00:05:35 v #1076 > >         !\($'"  &self, //"') : ()
00:05:35 v #1077 > >         !\($'"  account_id: near_sdk::AccountId, //"') : ()
00:05:35 v #1078 > >         !\($'") -> Option<(String, u64, u32)> { //"') : ()
00:05:35 v #1079 > >
00:05:35 v #1080 > >         inl state = !\($'$"&self.0"')
00:05:35 v #1081 > >         inl account_id : near.account_id = !\($'$"account_id"')
00:05:35 v #1082 > >
00:05:35 v #1083 > >         inl result = account_id |> get_account_info state
00:05:35 v #1084 > >         $'let _result = !result in _result |> (fun x ->
00:05:35 v #1085 > > Fable.Core.RustInterop.emitRustExpr x "$0 } // 4") // 3' : ()
00:05:35 v #1086 > >
00:05:35 v #1087 > >         !\($'"} // 2"') : ()
00:05:35 v #1088 > >
00:05:35 v #1089 > >         !\($'"} // 1"') : ()
00:05:35 v #1090 > >
00:05:35 v #1091 > >         2
00:05:35 v #1092 > >
00:05:35 v #1093 > >     inl get_alias_map () =
00:05:35 v #1094 > >         !\($'"pub fn get_alias_map( //"') : ()
00:05:35 v #1095 > >         !\($'"  &self, //"') : ()
00:05:35 v #1096 > >         !\($'"  alias: String, //"') : ()
00:05:35 v #1097 > >         !\($'") -> Option<std::collections::HashMap<near_sdk::AccountId, (u64,
00:05:35 v #1098 > > u32)>> { //"') : ()
00:05:35 v #1099 > >
00:05:35 v #1100 > >         inl alias_map : rust.ref (near.lookup_map sm'.std_string (mapm.hash_map
00:05:35 v #1101 > > near.account_id (u64 * u32))) =
00:05:35 v #1102 > >             !\($'$"&self.0.4"')
00:05:35 v #1103 > >
00:05:35 v #1104 > >         inl alias : sm'.std_string = !\($'$"alias"')
00:05:35 v #1105 > >
00:05:35 v #1106 > >         trace Debug
00:05:35 v #1107 > >             fun () => "chat_contract.get_alias_map"
00:05:35 v #1108 > >             fun () => { alias }
00:05:35 v #1109 > >
00:05:35 v #1110 > >         trace Debug (fun () => "") (join id)
00:05:35 v #1111 > >
00:05:35 v #1112 > >         !\\(alias, $'"  !alias_map.get(&$0).cloned() //"') : ()
00:05:35 v #1113 > >         !\($'"} //"') : ()
00:05:35 v #1114 > >
00:05:35 v #1115 > >         !\($'"} //"') : ()
00:05:35 v #1116 > >
00:05:35 v #1117 > >         2
00:05:35 v #1118 > >
00:05:35 v #1119 > >     inl get_alias_map_borsh () =
00:05:35 v #1120 > >         !\($'"#[[result_serializer(borsh)]] //"') : ()
00:05:35 v #1121 > >         !\($'"pub fn get_alias_map_borsh( //"') : ()
00:05:35 v #1122 > >         !\($'"  &self, //"') : ()
00:05:35 v #1123 > >         !\($'"  #[[serializer(borsh)]] alias: String, //"') : ()
00:05:35 v #1124 > >         !\($'") -> Option<std::collections::HashMap<near_sdk::AccountId, (u64,
00:05:35 v #1125 > > u32)>> { //"') : ()
00:05:35 v #1126 > >         !\($'"  self.get_alias_map(alias) //"') : ()
00:05:35 v #1127 > >         !\($'"} //"') : ()
00:05:35 v #1128 > >         1
00:05:35 v #1129 > >
00:05:35 v #1130 > >     inl fns =
00:05:35 v #1131 > >         [[
00:05:35 v #1132 > >             new_
00:05:35 v #1133 > >             is_valid_alias
00:05:35 v #1134 > >             generate_cid
00:05:35 v #1135 > >             generate_cid_borsh
00:05:35 v #1136 > >             claim_alias
00:05:35 v #1137 > >             get_account_info
00:05:35 v #1138 > >             get_alias_map
00:05:35 v #1139 > >             get_alias_map_borsh
00:05:35 v #1140 > >         ]]
00:05:35 v #1141 > >
00:05:35 v #1142 > >     inl rec loop acc fns i =
00:05:35 v #1143 > >         match fns with
00:05:35 v #1144 > >         | [[]] => acc
00:05:35 v #1145 > >         | x :: xs =>
00:05:35 v #1146 > >             !\($'"#[[near_sdk::near_bindgen]] //"') : ()
00:05:35 v #1147 > >             !\($'"impl State { //"') : ()
00:05:35 v #1148 > >             inl n = x ()
00:05:35 v #1149 > >             !\($'"} /* c"') : ()
00:05:35 v #1150 > >             inl rec loop' i' =
00:05:35 v #1151 > >                 if i' <> 1 // <= n
00:05:35 v #1152 > >                 then (!\($'"true; */ // ???? / i: !i / i\': !i' / acc: !acc / n:
00:05:35 v #1153 > > !n"') : bool) |> ignore
00:05:35 v #1154 > >                 else
00:05:35 v #1155 > >                     (!\($'"true; // ??? / i: !i / i\': !i' / acc: !acc / n:
00:05:35 v #1156 > > !n"') : bool) |> ignore
00:05:35 v #1157 > >                     loop' (i' + 1)
00:05:35 v #1158 > >             loop' 1u8
00:05:35 v #1159 > >             loop (acc + n) xs (i + 1)
00:05:35 v #1160 > >     inl n = loop 0u8 fns 1u8
00:05:35 v #1161 > >
00:05:35 v #1162 > >
00:05:35 v #1163 > >     // !\($'"/* a"') : ()
00:05:35 v #1164 > >
00:05:35 v #1165 > >     // !\($'"} // b"') : ()
00:05:35 v #1166 > >
00:05:35 v #1167 > >     !\($'"fn _main() //"') : ()
00:05:35 v #1168 > >     !\($'"{ { //"') : ()
00:05:35 v #1169 > >
00:05:35 v #1170 > >     inl rec loop' i' =
00:05:35 v #1171 > >         if i' <= n
00:05:35 v #1172 > >         then
00:05:35 v #1173 > >             (!\($'"true; { (); // ?? / i\': !i' / n: !n"') : bool) |> ignore
00:05:35 v #1174 > >             loop' (i' + 1)
00:05:35 v #1175 > >         else
00:05:35 v #1176 > >             (!\($'"true; { { (); // ? / i\': !i' / n: !n"') : bool) |> ignore
00:05:35 v #1177 > >             // (!\($'"true; */ // ?? / i\': !i' / n: !n"') : bool) |> ignore
00:05:35 v #1178 > >     loop' 1u8
00:05:35 v #1179 > >
00:05:35 v #1180 > > inl main () =
00:05:35 v #1181 > >     $'!main |> ignore' : ()
00:05:35 v #1182 > 00:05:34 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 54415 }
00:05:35 v #1183 > 00:05:34 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:05:36 v #1184 > 00:05:34 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb to html
00:05:36 v #1185 > 00:05:34 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:05:36 v #1186 > 00:05:34 v #7 !   validate(nb)
00:05:36 v #1187 > 00:05:35 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:05:36 v #1188 > 00:05:35 v #9 !   return _pygments_highlight(
00:05:37 v #1189 > 00:05:35 v #10 ! [NbConvertApp] Writing 452608 bytes to /home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.html
00:05:37 v #1190 > 00:05:35 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 926 }
00:05:37 v #1191 > 00:05:35 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 926 }
00:05:37 v #1192 > 00:05:35 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:05:37 v #1193 > 00:05:36 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:05:37 v #1194 > 00:05:36 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:05:37 v #1195 > 00:05:36 d #16 spiral.run / dib / { exit_code = 0; result_length = 55400 }
00:05:37 d #1196 runtime.execute_with_options_async / { exit_code = 0; output_length = 60526 }
00:05:37 d #3 main / executeCommand / exitCode: 0 / command: ../../../deps/spiral/workspace/target/release/spiral dib --path chat_contract.dib --retries 5
00:05:37 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 writeDibCode / output: Spi / path: chat_contract.dib
00:00:00 d #2 parseDibCode / output: Spi / file: chat_contract.dib
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 v #29 networking.test_port_open / { port = 13806; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # chat_contract\nopen rust\nopen rust.rust_operators\n\n/// ## chat_cont...27 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.spi"}} / result:
00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.spi"}} / result:
00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:03 d #16 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:03 d #17 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:04 d #20 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("*/ $0 /*")>]
#endif
type TypeEmit<'T> = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("&$0")>]
type Ref<'T> = class end
#else
type Ref<'T> = 'T
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("near_sdk::store::IterableSet<$0>")>]
#endif
type near_sdk_store_IterableSet<'T> = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("near_sdk::store::LookupMap<$0, $1>")>]
#endif
type near_sdk_store_LookupMap<'K, 'V> = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>]
type std_string_String = class end
#else
type std_string_String = string
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("mut $0...nterop.emitRustExpr () v802 
    let v804 : string = "true; { (); // ?? / i': 11uy / n: 14uy"
    let v805 : bool = Fable.Core.RustInterop.emitRustExpr () v804 
    let v806 : string = "true; { (); // ?? / i': 12uy / n: 14uy"
    let v807 : bool = Fable.Core.RustInterop.emitRustExpr () v806 
    let v808 : string = "true; { (); // ?? / i': 13uy / n: 14uy"
    let v809 : bool = Fable.Core.RustInterop.emitRustExpr () v808 
    let v810 : string = "true; { (); // ?? / i': 14uy / n: 14uy"
    let v811 : bool = Fable.Core.RustInterop.emitRustExpr () v810 
    let v812 : string = "true; { { (); // ? / i': 15uy / n: 14uy"
    let v813 : bool = Fable.Core.RustInterop.emitRustExpr () v812 
    ()
let v0 : (unit -> unit) = closure0()
v0 |> ignore
()

00:00:04 d #21 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("*/ $0 /*")>]
#endif
type TypeEmit<'T> = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("&$0")>]
type Ref<'T> = class end
#else
type Ref<'T> = 'T
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("near_sdk::store::IterableSet<$0>")>]
#endif
type near_sdk_store_IterableSet<'T> = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("near_sdk::store::LookupMap<$0, $1>")>]
#endif
type near_sdk_store_LookupMap<'K, 'V> = class end
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>]
type std_string_String = class end
#else
type std_string_String = string
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("mut $0...nterop.emitRustExpr () v802 
    let v804 : string = "true; { (); // ?? / i': 11uy / n: 14uy"
    let v805 : bool = Fable.Core.RustInterop.emitRustExpr () v804 
    let v806 : string = "true; { (); // ?? / i': 12uy / n: 14uy"
    let v807 : bool = Fable.Core.RustInterop.emitRustExpr () v806 
    let v808 : string = "true; { (); // ?? / i': 13uy / n: 14uy"
    let v809 : bool = Fable.Core.RustInterop.emitRustExpr () v808 
    let v810 : string = "true; { (); // ?? / i': 14uy / n: 14uy"
    let v811 : bool = Fable.Core.RustInterop.emitRustExpr () v810 
    let v812 : string = "true; { { (); // ? / i': 15uy / n: 14uy"
    let v813 : bool = Fable.Core.RustInterop.emitRustExpr () v812 
    ()
let v0 : (unit -> unit) = closure0()
v0 |> ignore
()

00:00:04 d #22 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:04 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: chat_contract / hash:  / code.Length: 144141
00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "/home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/chat/contract/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/chat/contract/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/chat_contract" } }
00:00:00 v #2 >   Determining projects to restore...
00:00:01 v #3 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #4 >   The last full restore is still up to date. Nothing left to do.
00:00:01 v #5 >   Total time taken: 0 milliseconds
00:00:01 v #6 >   Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
00:00:01 v #7 >   Restoring /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj
00:00:01 v #8 >   Starting restore process.
00:00:01 v #9 >   Total time taken: 0 milliseconds
00:00:02 v #10 >   Restored /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj (in 299 ms).
00:00:08 v #11 > /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fs(3284,15): warning FS0025: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). [/home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj]
00:00:12 v #12 >   chat_contract -> /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/bin/Release/net9.0/linux-x64/chat_contract.dll
00:00:12 v #13 >   chat_contract -> /home/runner/work/polyglot/polyglot/apps/chat/contract/dist
00:00:12 d #14 runtime.execute_with_options_async / { exit_code = 0; output_length = 1073 }
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/chat_contract
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract
polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target:  / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract / ProjectName: chat_contract / Language: rs / Runtime: CONTRACT / root: /home/runner/work/polyglot/polyglot
Fable 5.0.0-alpha.7: F# to Rust compiler (status: alpha)

Thanks to the contributor! @cloudRoutine
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target/Builder/chat_contract/chat_contract.fsproj...
Project and references (14 source files) parsed in 2480ms

Started Fable compilation...

Fable compilation finished in 7802ms

./target/Builder/chat_contract/chat_contract.fs(3284,15): (3284,19) warning FSHARP: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). (code 25)
./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./target/Builder/chat_contract/chat_contract.fs(3502,6): (3502,12) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async__contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async__contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace_contract.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib_contract.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib_contract.rs
 Downloading crates ...
  Downloaded wasm-bindgen-backend v0.2.99
  Downloaded data-encoding-macro v0.1.15
  Downloaded wasm-bindgen-macro-support v0.2.99
  Downloaded wasm-bindgen-shared v0.2.99
  Downloaded rustversion v1.0.18
  Downloaded wasm-bindgen v0.2.99
  Downloaded js-sys v0.3.76
  Downloaded near-sdk-macros v5.6.0
  Downloaded data-encoding-macro-internal v0.1.13
  Downloaded data-encoding v2.6.0
  Downloaded wasm-bindgen-macro v0.2.99
  Downloaded serde_derive v1.0.216
  Downloaded near-sdk v5.6.0
   Compiling proc-macro2 v1.0.92
   Compiling unicode-ident v1.0.14
   Compiling equivalent v1.0.1
   Compiling wasm-bindgen-shared v0.2.99
   Compiling hashbrown v0.15.2
   Compiling winnow v0.6.20
   Compiling toml_datetime v0.6.8
   Compiling log v0.4.22
   Compiling indexmap v2.7.0
   Compiling cfg_aliases v0.2.1
   Compiling quote v1.0.37
   Compiling syn v2.0.90
   Compiling serde v1.0.216
   Compiling bumpalo v3.16.0
   Compiling typenum v1.17.0
   Compiling borsh v1.5.3
   Compiling serde_json v1.0.133
   Compiling once_cell v1.20.2
   Compiling toml_edit v0.22.22
   Compiling fnv v1.0.7
   Compiling rustversion v1.0.18
   Compiling ident_case v1.0.1
   Compiling cfg-if v1.0.0
   Compiling syn v1.0.109
   Compiling wasm-bindgen v0.2.99
   Compiling hybrid-array v0.2.3
   Compiling data-encoding v2.6.0
   Compiling proc-macro-crate v3.2.0
   Compiling wee_alloc v0.4.5
   Compiling memchr v2.7.4
   Compiling ryu v1.0.18
   Compiling wasm-bindgen-backend v0.2.99
   Compiling darling_core v0.20.10
   Compiling near-sdk-macros v5.6.0
   Compiling itoa v1.0.14
   Compiling heck v0.5.0
   Compiling data-encoding-macro-internal v0.1.13
   Compiling wasm-bindgen-macro-support v0.2.99
   Compiling crypto-common v0.2.0-rc.1
   Compiling block-buffer v0.11.0-rc.3
   Compiling const-oid v0.10.0-rc.3
   Compiling serde_derive v1.0.216
   Compiling borsh-derive v1.5.3
   Compiling wasm-bindgen-macro v0.2.99
   Compiling darling_macro v0.20.10
   Compiling darling v0.20.10
   Compiling strum_macros v0.26.4
   Compiling strum v0.26.3
   Compiling js-sys v0.3.76
   Compiling cfg-if v0.1.10
   Compiling Inflector v0.11.4
   Compiling memory_units v0.4.0
   Compiling data-encoding-macro v0.1.15
   Compiling digest v0.11.0-pre.9
   Compiling near-sys v0.2.2
   Compiling base64 v0.22.1
   Compiling base-x v0.2.11
   Compiling bs58 v0.5.1
   Compiling multibase v0.9.1
   Compiling sha2 v0.11.0-pre.4
   Compiling inline_colorization v0.1.6
   Compiling unsigned-varint v0.8.0
   Compiling near-account-id v1.0.0
   Compiling near-token v0.3.0
   Compiling near-gas v0.3.0
   Compiling getrandom v0.2.15
   Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust)
   Compiling near-sdk v5.6.0
   Compiling chat_contract v0.0.1 (/home/runner/work/polyglot/polyglot/apps/chat/contract)
    Finished `release` profile [optimized] target(s) in 20.48s
 Downloading crates ...
  Downloaded ordered-float v4.5.0
  Downloaded pin-project v1.1.7
  Downloaded tokio-macros v2.4.0
  Downloaded hyper-rustls v0.27.3
  Downloaded tempfile v3.14.0
  Downloaded xml-rs v0.8.24
  Downloaded pin-project-internal v1.1.7
  Downloaded open v5.3.1
  Downloaded serde_with_macros v3.11.0
  Downloaded cc v1.2.4
  Downloaded serde_with v3.11.0
  Downloaded reqwest v0.12.9
  Downloaded hyper v0.14.31
  Downloaded hyper v1.5.1
  Downloaded anyhow v1.0.94
  Downloaded async-trait v0.1.83
  Downloaded rustix v0.37.27
  Downloaded tokio v1.42.0
  Downloaded near-sandbox-utils v0.12.0
   Compiling proc-macro2 v1.0.92
   Compiling unicode-ident v1.0.14
   Compiling libc v0.2.168
   Compiling serde v1.0.216
   Compiling version_check v0.9.5
   Compiling shlex v1.3.0
   Compiling once_cell v1.20.2
   Compiling quote v1.0.37
   Compiling jobserver v0.1.32
   Compiling syn v2.0.90
   Compiling cc v1.2.4
   Compiling typenum v1.17.0
   Compiling generic-array v0.14.7
   Compiling smallvec v1.13.2
   Compiling pkg-config v0.3.31
   Compiling futures-core v0.3.31
   Compiling lock_api v0.4.12
   Compiling parking_lot_core v0.9.10
   Compiling scopeguard v1.2.0
   Compiling bytes v1.9.0
   Compiling byteorder v1.5.0
   Compiling log v0.4.22
   Compiling parking_lot v0.12.3
   Compiling signal-hook-registry v1.4.2
   Compiling getrandom v0.2.15
   Compiling equivalent v1.0.1
   Compiling hashbrown v0.15.2
   Compiling toml_datetime v0.6.8
   Compiling tracing-core v0.1.33
   Compiling futures-io v0.3.31
   Compiling socket2 v0.5.8
   Compiling indexmap v2.7.0
   Compiling mio v1.0.3
   Compiling subtle v2.6.1
   Compiling synstructure v0.13.1
   Compiling futures-sink v0.3.31
   Compiling rand_core v0.6.4
   Compiling crypto-common v0.1.6
   Compiling futures-channel v0.3.31
   Compiling anyhow v1.0.94
   Compiling block-buffer v0.10.4
   Compiling num-traits v0.2.19
   Compiling cfg_aliases v0.2.1
   Compiling fnv v1.0.7
   Compiling syn v1.0.109
   Compiling digest v0.10.7
   Compiling winnow v0.6.20
   Compiling zstd-sys v2.0.13+zstd.1.5.6
   Compiling rustversion v1.0.18
   Compiling crossbeam-utils v0.8.21
   Compiling serde_derive v1.0.216
   Compiling zerofrom-derive v0.1.5
   Compiling yoke-derive v0.7.5
   Compiling tokio-macros v2.4.0
   Compiling zerovec-derive v0.10.3
   Compiling tracing-attributes v0.1.28
   Compiling tokio v1.42.0
   Compiling tracing v0.1.41
   Compiling displaydoc v0.2.5
   Compiling futures-macro v0.3.31
   Compiling zerocopy-derive v0.7.35
   Compiling futures-util v0.3.31
   Compiling zerocopy v0.7.35
   Compiling toml_edit v0.22.22
   Compiling icu_provider_macros v1.5.0
   Compiling lazy_static v1.5.0
   Compiling bitflags v2.6.0
   Compiling proc-macro-crate v3.2.0
   Compiling thiserror v1.0.69
   Compiling ppv-lite86 v0.2.20
   Compiling thiserror-impl v1.0.69
   Compiling borsh-derive v1.5.3
   Compiling rand_chacha v0.3.1
   Compiling serde_json v1.0.133
   Compiling rand v0.8.5
   Compiling borsh v1.5.3
   Compiling stable_deref_trait v1.2.0
   Compiling tokio-util v0.7.13
   Compiling sha2 v0.10.8
   Compiling semver v1.0.24
   Compiling percent-encoding v2.3.1
   Compiling zerofrom v0.1.5
   Compiling bitflags v1.3.2
   Compiling yoke v0.7.5
   Compiling num-integer v0.1.46
   Compiling memchr v2.7.4
   Compiling httparse v1.9.5
   Compiling zerovec v0.10.4
   Compiling hex v0.4.3
   Compiling ring v0.17.8
   Compiling cfg-if v1.0.0
   Compiling try-lock v0.2.5
   Compiling tower-service v0.3.3
   Compiling want v0.3.1
   Compiling async-trait v0.1.83
   Compiling static_assertions v1.1.0
   Compiling tinystr v0.7.6
   Compiling http v0.2.12
   Compiling thread_local v1.1.8
   Compiling powerfmt v0.2.0
   Compiling regex-syntax v0.6.29
   Compiling litemap v0.7.4
   Compiling writeable v0.5.5
   Compiling utf8parse v0.2.2
   Compiling deranged v0.3.11
   Compiling icu_locid v1.5.0
   Compiling regex-automata v0.1.10
   Compiling openssl-src v300.4.1+3.4.0
   Compiling overload v0.1.1
   Compiling vcpkg v0.2.15
   Compiling num-conv v0.1.0
   Compiling time-core v0.1.2
   Compiling nu-ansi-term v0.46.0
   Compiling time v0.3.37
   Compiling openssl-sys v0.9.104
   Compiling matchers v0.1.0
   Compiling icu_provider v1.5.0
   Compiling http-body v0.4.6
   Compiling aho-corasick v1.1.3
   Compiling rustc_version v0.4.1
   Compiling crossbeam-channel v0.5.14
   Compiling sharded-slab v0.1.7
   Compiling pin-project-internal v1.1.7
   Compiling serde_repr v0.1.19
   Compiling tracing-log v0.2.0
   Compiling bzip2-sys v0.1.11+1.0.8
   Compiling num-bigint v0.3.3
   Compiling indexmap v1.9.3
   Compiling icu_locid_transform_data v1.5.0
   Compiling atomic-waker v1.1.2
   Compiling zstd-safe v5.0.2+zstd.1.5.2
   Compiling regex-syntax v0.8.5
   Compiling base64 v0.21.7
   Compiling pin-project v1.1.7
   Compiling icu_locid_transform v1.5.0
   Compiling tracing-subscriber v0.3.19
   Compiling curve25519-dalek v4.1.3
   Compiling regex-automata v0.4.9
   Compiling h2 v0.3.26
   Compiling icu_collections v1.5.0
   Compiling near-account-id v1.0.0
   Compiling futures-executor v0.3.31
   Compiling axum-core v0.3.4
   Compiling num-rational v0.3.2
   Compiling httpdate v1.0.3
   Compiling either v1.13.0
   Compiling crunchy v0.2.2
   Compiling convert_case v0.4.0
   Compiling ident_case v1.0.1
   Compiling base64 v0.22.1
   Compiling icu_properties_data v1.5.0
   Compiling hashbrown v0.12.3
   Compiling strsim v0.11.1
   Compiling tower-layer v0.3.3
   Compiling mime v0.3.17
   Compiling darling_core v0.20.10
   Compiling icu_properties v1.5.1
   Compiling derive_more v0.99.18
   Compiling itertools v0.12.1
   Compiling hyper v0.14.31
   Compiling regex v1.11.1
   Compiling axum v0.6.20
   Compiling tokio-stream v0.1.17
   Compiling curve25519-dalek-derive v0.1.1
   Compiling enum-map-derive v0.17.0
   Compiling derive_arbitrary v1.4.1
   Compiling secp256k1-sys v0.8.1
   Compiling heck v0.4.1
   Compiling heck v0.5.0
   Compiling rustls v0.23.20
   Compiling bs58 v0.4.0
   Compiling write16 v1.0.0
   Compiling icu_normalizer_data v1.5.0
   Compiling utf16_iter v1.0.5
   Compiling utf8_iter v1.0.4
   Compiling schemars v0.8.21
   Compiling urlencoding v2.1.3
   Compiling rustls-pki-types v1.10.1
   Compiling signature v2.2.0
   Compiling ed25519 v2.2.3
   Compiling opentelemetry v0.22.0
   Compiling icu_normalizer v1.5.0
   Compiling arbitrary v1.4.1
   Compiling strum_macros v0.24.3
   Compiling enum-map v2.7.3
   Compiling prost-derive v0.12.6
   Compiling darling_macro v0.20.10
   Compiling tower v0.4.13
   Compiling anstyle-parse v0.2.6
   Compiling concurrent-queue v2.5.0
   Compiling tokio-io-timeout v1.2.0
   Compiling async-stream-impl v0.3.6
   Compiling ordered-float v4.5.0
   Compiling serde_derive_internals v0.29.1
   Compiling block-padding v0.3.3
   Compiling matchit v0.7.3
   Compiling glob v0.3.1
   Compiling anstyle v1.0.10
   Compiling colorchoice v1.0.3
   Compiling sync_wrapper v0.1.2
   Compiling parking v2.2.1
   Compiling is_terminal_polyfill v1.70.1
   Compiling anstyle-query v1.1.2
   Compiling openssl v0.10.68
   Compiling foreign-types-shared v0.1.1
   Compiling foreign-types v0.3.2
   Compiling anstream v0.6.18
   Compiling schemars_derive v0.8.21
   Compiling opentelemetry_sdk v0.22.1
   Compiling inout v0.1.3
   Compiling async-stream v0.3.6
   Compiling prost v0.12.6
   Compiling hyper-timeout v0.4.1
   Compiling darling v0.20.10
   Compiling uint v0.9.5
   Compiling near-primitives-core v0.23.0
   Compiling ed25519-dalek v2.1.1
   Compiling strum v0.24.1
   Compiling idna_adapter v1.2.0
   Compiling fixed-hash v0.7.0
   Compiling form_urlencoded v1.2.1
   Compiling openssl-macros v0.1.1
   Compiling http v1.2.0
   Compiling winnow v0.5.40
   Compiling rustix v0.38.42
   Compiling protobuf v2.28.0
   Compiling json_comments v0.2.2
   Compiling fastrand v2.3.0
   Compiling near-config-utils v0.23.0
   Compiling primitive-types v0.10.1
   Compiling toml_edit v0.19.15
   Compiling tonic v0.11.0
   Compiling idna v1.0.3
   Compiling secp256k1 v0.27.0
   Compiling cipher v0.4.4
   Compiling actix-rt v2.10.0
   Compiling actix-macros v0.2.4
   Compiling actix_derive v0.6.2
   Compiling blake2 v0.10.6
   Compiling hmac v0.12.1
   Compiling proc-macro-error-attr v1.0.4
   Compiling adler2 v2.0.0
   Compiling linux-raw-sys v0.4.14
   Compiling zstd-safe v7.2.1
   Compiling ryu v1.0.18
   Compiling itoa v1.0.14
   Compiling arrayvec v0.7.6
   Compiling prometheus v0.13.4
   Compiling clap_lex v0.7.4
   Compiling near-stdx v0.23.0
   Compiling near-crypto v0.23.0
   Compiling clap_builder v4.5.23
   Compiling miniz_oxide v0.8.0
   Compiling actix v0.13.5
   Compiling opentelemetry-proto v0.5.0
   Compiling url v2.5.4
   Compiling proc-macro-crate v1.3.1
   Compiling http-body v1.0.1
   Compiling event-listener v5.3.1
   Compiling clap_derive v4.5.18
   Compiling sha1 v0.10.6
   Compiling zvariant_utils v1.0.1
   Compiling proc-macro-error v1.0.4
   Compiling crc32fast v1.4.2
   Compiling cpufeatures v0.2.16
   Compiling native-tls v0.2.12
   Compiling reed-solomon-erasure v4.0.2
   Compiling event-listener v2.5.3
   Compiling unicode-width v0.1.14
   Compiling opentelemetry-semantic-conventions v0.14.0
   Compiling io-lifetimes v1.0.11
   Compiling unsafe-libyaml v0.2.11
   Compiling serde_yaml v0.9.34+deprecated
   Compiling opentelemetry-otlp v0.15.0
   Compiling flate2 v1.0.35
   Compiling clap v4.5.23
   Compiling event-listener-strategy v0.5.3
   Compiling aes v0.8.4
   Compiling h2 v0.4.7
   Compiling serde_with_macros v3.11.0
   Compiling tracing-opentelemetry v0.23.0
   Compiling futures v0.3.31
   Compiling tracing-appender v0.2.3
   Compiling near-time v0.23.0
   Compiling near-rpc-error-core v0.23.0
   Compiling enumflags2_derive v0.7.10
   Compiling futures-lite v2.5.0
   Compiling dirs-sys-next v0.1.2
   Compiling polling v2.8.0
   Compiling memoffset v0.7.1
   Compiling spin v0.9.8
   Compiling untrusted v0.9.0
   Compiling siphasher v0.3.11
   Compiling waker-fn v1.2.0
   Compiling async-task v4.7.1
   Compiling fastrand v1.9.0
   Compiling dyn-clone v1.0.17
   Compiling openssl-probe v0.1.5
   Compiling rustix v0.37.27
   Compiling keccak v0.1.5
   Compiling sha3 v0.10.8
   Compiling itertools v0.10.5
   Compiling futures-lite v1.13.0
   Compiling chrono v0.4.39
   Compiling dirs-next v2.0.0
   Compiling enumflags2 v0.7.10
   Compiling near-rpc-error-macro v0.23.0
   Compiling near-o11y v0.23.0
   Compiling near-performance-metrics v0.23.0
   Compiling hyper v1.5.1
   Compiling serde_with v3.11.0
   Compiling zstd v0.13.2
   Compiling async-channel v2.3.1
   Compiling near-parameters v0.23.0
   Compiling async-lock v2.8.0
   Compiling zvariant_derive v3.15.2
   Compiling piper v0.2.4
   Compiling near-fmt v0.23.0
   Compiling bytesize v1.3.0
   Compiling smart-default v0.6.0
   Compiling near-async-derive v0.23.0
   Compiling filetime v0.2.25
   Compiling async-fs v1.6.0
   Compiling async-io v1.13.0
   Compiling base64ct v1.6.0
   Compiling easy-ext v0.2.9
   Compiling linux-raw-sys v0.3.8
   Compiling signal-hook v0.3.17
   Compiling near-primitives v0.23.0
   Compiling password-hash v0.4.2
   Compiling near-async v0.23.0
   Compiling zvariant v3.15.2
   Compiling blocking v1.6.1
   Compiling interactive-clap-derive v0.2.10
   Compiling hyper-util v0.1.10
   Compiling rustls-webpki v0.102.8
   Compiling Inflector v0.11.4
   Compiling http-body-util v0.1.2
   Compiling num-bigint v0.4.6
   Compiling backtrace v0.3.71
   Compiling socket2 v0.4.10
   Compiling vte_generate_state_changes v0.1.2
   Compiling ahash v0.8.11
   Compiling zeroize v1.8.1
   Compiling portable-atomic v1.10.0
   Compiling bitcoin-internals v0.2.0
   Compiling eyre v0.6.12
   Compiling gimli v0.28.1
   Compiling adler v1.0.2
   Compiling miniz_oxide v0.7.4
   Compiling addr2line v0.21.0
   Compiling vte v0.11.1
   Compiling num-rational v0.4.2
   Compiling near-chain-configs v0.23.0
   Compiling pbkdf2 v0.11.0
   Compiling nix v0.26.4
   Compiling zstd v0.11.2+zstd.1.5.2
   Compiling interactive-clap v0.2.10
   Compiling zbus_names v2.6.1
   Compiling bzip2 v0.4.4
   Compiling xattr v1.3.1
   Compiling async-executor v1.13.1
   Compiling webpki-roots v0.26.7
   Compiling async-broadcast v0.5.1
   Compiling zbus_macros v3.15.2
   Compiling serde_urlencoded v0.7.1
   Compiling rustls-pemfile v2.2.0
   Compiling tracing-error v0.2.1
   Compiling num-iter v0.1.45
   Compiling derivative v2.2.0
   Compiling async-recursion v1.1.1
   Compiling num-complex v0.4.6
   Compiling digest v0.9.0
   Compiling mio v0.8.11
   Compiling ordered-stream v0.2.0
   Compiling sync_wrapper v1.0.2
   Compiling xdg-home v1.3.0
   Compiling object v0.32.2
   Compiling encoding_rs v0.8.35
   Compiling constant_time_eq v0.1.5
   Compiling rustc-demangle v0.1.24
   Compiling option-ext v0.2.0
   Compiling radium v0.7.0
   Compiling uuid v0.8.2
   Compiling owo-colors v3.5.0
   Compiling tinyvec_macros v0.1.1
   Compiling indenter v0.3.3
   Compiling ipnet v2.10.1
   Compiling tinyvec v1.8.0
   Compiling color-spantrace v0.2.1
   Compiling ureq v2.12.1
   Compiling dirs-sys v0.4.1
   Compiling zip v0.6.6
   Compiling zbus v3.15.2
   Compiling signal-hook-mio v0.2.4
   Compiling num v0.4.3
   Compiling tar v0.4.43
   Compiling near-jsonrpc-primitives v0.23.0
   Compiling vt100 v0.15.2
   Compiling near-abi v0.4.3
   Compiling uriparse v0.6.4
   Compiling phf_shared v0.10.0
   Compiling console v0.15.8
   Compiling near_schemafy_core v0.7.0
   Compiling hkdf v0.12.4
   Compiling cbc v0.1.2
   Compiling serde_spanned v0.6.8
   Compiling scroll_derive v0.11.1
   Compiling crypto-mac v0.9.1
   Compiling block-buffer v0.9.0
   Compiling fs2 v0.4.3
   Compiling is-docker v0.2.0
   Compiling csv-core v0.1.11
   Compiling rust_decimal v1.36.0
   Compiling fallible-iterator v0.2.0
   Compiling tap v1.0.1
   Compiling unicode-segmentation v1.12.0
   Compiling camino v1.1.9
   Compiling precomputed-hash v0.1.1
   Compiling pin-project-lite v0.2.15
   Compiling near-sandbox-utils v0.8.0
   Compiling unicode-width v0.2.0
   Compiling is_executable v0.1.2
   Compiling hex-conservative v0.1.2
   Compiling same-file v1.0.6
   Compiling iana-time-zone v0.1.61
   Compiling new_debug_unreachable v1.0.6
   Compiling minimal-lexical v0.2.1
   Compiling number_prefix v0.4.0
   Compiling opaque-debug v0.3.1
   Compiling hex v0.3.2
   Compiling sha2 v0.9.9
   Compiling nom v7.1.3
   Compiling indicatif v0.17.9
   Compiling string_cache v0.8.7
   Compiling binary-install v0.2.0
   Compiling bitcoin_hashes v0.13.0
   Compiling walkdir v2.5.0
   Compiling newline-converter v0.3.0
   Compiling wyz v0.5.1
   Compiling csv v1.3.1
   Compiling is-wsl v0.4.0
   Compiling scroll v0.11.0
   Compiling hmac v0.9.0
   Compiling secret-service v3.1.0
   Compiling near_schemafy_lib v0.7.0
   Compiling hashbrown v0.14.5
   Compiling crossterm v0.25.0
   Compiling dirs v5.0.1
   Compiling unicode-normalization v0.1.22
   Compiling color-eyre v0.6.3
   Compiling debugid v0.7.3
   Compiling near-token v0.2.1
   Compiling term v0.7.0
   Compiling tempfile v3.14.0
   Compiling brownstone v1.1.0
   Compiling fuzzy-matcher v0.3.7
   Compiling linux-keyutils v0.2.4
   Compiling fxhash v0.2.1
   Compiling is-terminal v0.4.13
   Compiling memmap2 v0.5.10
   Compiling plain v0.2.3
   Compiling indent_write v2.2.0
   Compiling encode_unicode v1.0.0
   Compiling xml-rs v0.8.24
   Compiling home v0.5.9
   Compiling names v0.14.0
   Compiling joinery v2.1.0
   Compiling smawk v0.3.2
   Compiling pathdiff v0.2.3
   Compiling scroll v0.10.2
   Compiling prettyplease v0.1.25
   Compiling funty v2.0.0
   Compiling unicode-linebreak v0.1.5
   Compiling shell-escape v0.1.5
   Compiling bs58 v0.5.1
   Compiling bitvec v1.0.1
   Compiling textwrap v0.16.1
   Compiling pdb v0.7.0
   Compiling open v5.3.1
   Compiling nom-supreme v0.6.0
   Compiling elementtree v0.7.0
   Compiling prettytable v0.10.0
   Compiling goblin v0.5.4
   Compiling symbolic-common v8.8.0
   Compiling inquire v0.7.5
   Compiling keyring v2.3.3
   Compiling bip39 v2.1.0
   Compiling shellexpand v3.1.0
   Compiling near-abi-client-impl v0.1.1
   Compiling wasmparser v0.211.1
   Compiling slipped10 v0.4.6
   Compiling toml v0.8.19
   Compiling tracing-indicatif v0.3.8
   Compiling gimli v0.26.2
   Compiling near-gas v0.2.5
   Compiling zip v0.5.13
   Compiling env_filter v0.1.2
   Compiling linked-hash-map v0.5.6
   Compiling cargo-platform v0.1.9
   Compiling smart-default v0.7.1
   Compiling shell-words v1.1.0
   Compiling dmsort v1.0.2
   Compiling near-sandbox-utils v0.9.0
   Compiling lazycell v1.3.0
   Compiling easy-ext v1.0.2
   Compiling wasmparser v0.83.0
   Compiling humantime v2.1.0
   Compiling near-sdk-macros v5.6.0
   Compiling env_logger v0.11.5
   Compiling symbolic-debuginfo v8.8.0
   Compiling cargo_metadata v0.18.1
   Compiling near-abi-client-macros v0.1.1
   Compiling near-workspaces v0.11.1
   Compiling strum_macros v0.26.4
   Compiling jsonptr v0.4.7
   Compiling colored v2.2.0
   Compiling atty v0.2.14
   Compiling libloading v0.8.6
   Compiling strum v0.26.3
   Compiling convert_case v0.5.0
   Compiling near-sandbox-utils v0.12.0
   Compiling dunce v1.0.5
   Compiling near-abi-client v0.1.1
   Compiling json-patch v2.0.0
   Compiling tokio-retry v0.3.0
   Compiling near-gas v0.3.0
   Compiling near-token v0.3.0
   Compiling near-sys v0.2.2
   Compiling near-sdk v5.6.0
   Compiling crypto-hash v0.3.4
   Compiling cargo-util v0.1.2
   Compiling tokio-native-tls v0.3.1
   Compiling hyper-tls v0.6.0
   Compiling reqwest v0.12.9
   Compiling near-jsonrpc-client v0.10.1
   Compiling near-socialdb-client v0.3.2
   Compiling near-cli-rs v0.11.1
   Compiling cargo-near v0.6.4
   Compiling chat_contract_tests v0.0.1 (/home/runner/work/polyglot/polyglot/apps/chat/contract/tests)
    Finished `release` profile [optimized] target(s) in 4m 30s
     Running `/home/runner/work/polyglot/polyglot/workspace/target/release/chat_contract_tests`
Installed near-sandbox into /home/runner/work/polyglot/polyglot/workspace/target/release/build/near-sandbox-utils-c39df2faf0b47791/out/.near/near-sandbox-1.40.0_7dd0b5993577f592be15eb102e5a3da37be66271/near-sandbox


new: ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 1641007093783,
    },
    transaction: ExecutionOutcome {
        transaction_hash: Dioj6PZXQUtqYR9EH9x4QTd8zmvB5LLGP1xjGx4Es9vP,
        block_hash: HspYwN8bxN182smRQbuYpLMN7yfWN2b1oUu7oxLHdsRo,
        logs: [],
        receipt_ids: [
            E1itqcRqhNxMe5mmGQHsWRYX9Ec4m6DvvkRYDYkuRvqq,
        ],
        gas_burnt: NearGas {
            inner: 308066207802,
        },
        tokens_burnt: NearToken {
            inner: 30806620780200000000,
        },
        executor_id: AccountId(
            "dev-20250127133217-57144872560345",
        ),
        status: SuccessReceiptId(E1itqcRqhNxMe5mmGQHsWRYX9Ec4m6DvvkRYDYkuRvqq),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: E1itqcRqhNxMe5mmGQHsWRYX9Ec4m6DvvkRYDYkuRvqq,
            block_hash: HspYwN8bxN182smRQbuYpLMN7yfWN2b1oUu7oxLHdsRo,
            logs: [],
            receipt_ids: [
                Gfi3nDTHgrED7WhzTvD73U9VJSnqk917nnWJaiZ76qQK,
            ],
            gas_burnt: NearGas {
                inner: 1332940885981,
            },
            tokens_burnt: NearToken {
                inner: 133294088598100000000,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.0010961927386470439
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205788226811736
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.0008904045118353079
  outcome_tokens_burnt_usd: 0.0


claim_alias(contract, ''): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 2162513357756,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 3U5ye1wi8YQXpN3DLUJMuJBEAHTT1WVHB5tUTrpqu29C,
        block_hash: GQgiEGJ9DAkt8966cBFYpMy2uYyJ322Gi4JfYeuuwtqp,
        logs: [],
        receipt_ids: [
            ER3fRsUAWpSvYG6qH3okjVp4mTpN2mFTvoxiUZC9kXXt,
        ],
        gas_burnt: NearGas {
            inner: 308110926482,
        },
        tokens_burnt: NearToken {
            inner: 30811092648200000000,
        },
        executor_id: AccountId(
            "dev-20250127133217-57144872560345",
        ),
        status: SuccessReceiptId(ER3fRsUAWpSvYG6qH3okjVp4mTpN2mFTvoxiUZC9kXXt),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: ER3fRsUAWpSvYG6qH3okjVp4mTpN2mFTvoxiUZC9kXXt,
            block_hash: GQgiEGJ9DAkt8966cBFYpMy2uYyJ322Gi4JfYeuuwtqp,
            logs: [],
            receipt_ids: [
                J8HaDJCC989vPUrvNFtvuv9wiqAxSkSxLLqtxfv5g5xj,
            ],
            gas_burnt: NearGas {
                inner: 1631219868774,
            },
            tokens_burnt: NearToken {
                inner: 163121986877400000000,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: chat_contract.claim_alias / invalid alias")) })),
        },
        ExecutionOutcome {
            transaction_hash: J8HaDJCC989vPUrvNFtvuv9wiqAxSkSxLLqtxfv5g5xj,
            block_hash: zZSgqsbNL9vd7WybXFcBbdCPsPuybVkjRroNjgkQ2Ma,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: SuccessValue(''),
        },
    ],
    status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: chat_contract.claim_alias / invalid alias")) })),
}
total_gas_burnt_usd: 0.001444558922981008
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205818098889976
  outcome_tokens_burnt_usd: 0.0
outcome (success: false):
  outcome_gas_burnt_usd: 0.0010896548723410319
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


dev_create_account(account1): Account {
    id: AccountId(
        "dev-20250127133218-76390440021427",
    ),
}


generate_cid_borsh(account1): ViewResultDetails { result: [59, 0, 0, 0, 98, 97, 102, 107, 114, 101, 105, 104, 100, 119, 100, 99, 101, 102, 103, 104, 52, 100, 113, 107, 106, 118, 54, 55, 117, 122, 99, 109, 119, 55, 111, 106, 101, 101, 54, 120, 101, 100, 122, 100, 101, 116, 111, 106, 117, 122, 106, 101, 118, 116, 101, 110, 120, 113, 117, 118, 121, 107, 117], logs: [] }


claim_alias(account1, alias1): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 3550509994724,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 6QA5fbEaKtmwcWN4hBrwFWTBYfdthbr28Zxhcw1LDR7N,
        block_hash: BYbhUT9JCndTNk7ffiSUSZAfcevh4qCeGwF4qVq8kLPa,
        logs: [],
        receipt_ids: [
            HMufaKcuQh4fGsRMe6xuhDnW7gf6hRF6Z52fUcZwa5di,
        ],
        gas_burnt: NearGas {
            inner: 308124342086,
        },
        tokens_burnt: NearToken {
            inner: 30812434208600000000,
        },
        executor_id: AccountId(
            "dev-20250127133218-76390440021427",
        ),
        status: SuccessReceiptId(HMufaKcuQh4fGsRMe6xuhDnW7gf6hRF6Z52fUcZwa5di),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: HMufaKcuQh4fGsRMe6xuhDnW7gf6hRF6Z52fUcZwa5di,
            block_hash: 5nuM9ecziW4ugashK78wzi7DeSfFJGx4i78P5NH6v7Rm,
            logs: [
                "13:32:20 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1737984740457783772; signer_account_id = \"dev-20250127133218-76390440021427\"; predecessor_account_id = \"dev-20250127133218-76390440021427\" }\n13:32:20 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }",
            ],
            receipt_ids: [
                32PfFu1UT1HC5XecWwpFgtdUY27YhhApgJjPRtqczMgd,
            ],
            gas_burnt: NearGas {
                inner: 3019203090138,
            },
            tokens_burnt: NearToken {
                inner: 301920309013800000000,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 32PfFu1UT1HC5XecWwpFgtdUY27YhhApgJjPRtqczMgd,
            block_hash: Goezbo1MDLLFr5gnWunfzmf5ag8EpVeMGhUd2xfm8Qyb,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20250127133218-76390440021427",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.002371740676475632
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205827060513448
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.002016827664212184
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


claim_alias(account1, alias1): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 3682943458178,
    },
    transaction: ExecutionOutcome {
        transaction_hash: ByhcymnKudZx1c81A3Z78W58dx4egB9M2xdxHiRshUKy,
        block_hash: 577rYCuFT99Td6eFvr6bvc5rhLCqoS1pWAHMyABXg9sB,
        logs: [],
        receipt_ids: [
            4Hb1F23EJff3j6Sm9N7EAo4btTfQFyQuD6BocgJx3KAr,
        ],
        gas_burnt: NearGas {
            inner: 308124342086,
        },
        tokens_burnt: NearToken {
            inner: 30812434208600000000,
        },
        executor_id: AccountId(
            "dev-20250127133218-76390440021427",
        ),
        status: SuccessReceiptId(4Hb1F23EJff3j6Sm9N7EAo4btTfQFyQuD6BocgJx3KAr),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 4Hb1F23EJff3j6Sm9N7EAo4btTfQFyQuD6BocgJx3KAr,
            block_hash: 43SUkxNjkSn687MNHyP3PfFr5iyguZFxbpBV87SVLRqm,
            logs: [
                "13:32:21 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1737984741467937200; signer_account_id = \"dev-20250127133218-76390440021427\"; predecessor_account_id = \"dev-20250127133218-76390440021427\" }\n13:32:21 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias1\") }",
            ],
            receipt_ids: [
                Am1rDXfDvZD6LTHftX5yV3d6mWqgwGFnWtGuYoSioBV5,
            ],
            gas_burnt: NearGas {
                inner: 3151636553592,
            },
            tokens_burnt: NearToken {
                inner: 315163655359200000000,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: Am1rDXfDvZD6LTHftX5yV3d6mWqgwGFnWtGuYoSioBV5,
            block_hash: 52fUyut8ddZCoZxfx9fjKmGqB7teviMwCas5WKEu4quC,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20250127133218-76390440021427",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.0024602062300629036
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205827060513448
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.002105293217799456
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account1): Some(
    (
        "alias1",
        1737984741467937200,
        0,
    ),
)


get_alias_map(account1, alias1): Some(
    {
        AccountId(
            "dev-20250127133218-76390440021427",
        ): (
            1737984741467937200,
            0,
        ),
    },
)


dev_create_account(account2): Account {
    id: AccountId(
        "dev-20250127133221-12794903589331",
    ),
}


claim_alias(alias2): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 3798595421762,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 7Qdb8mnpnaxUGbuRkD1ZjAHEyBRHDwNT3Lz8sVqFtpJo,
        block_hash: Bhk2t8CszXc2fdh6oE7NJ8Phdtnx7rcc42fQUruSQVJ9,
        logs: [],
        receipt_ids: [
            DUn1HeaXxHmhmHjjWodFA1wurKqBE9wESMqUqVTPm9Vf,
        ],
        gas_burnt: NearGas {
            inner: 308124342086,
        },
        tokens_burnt: NearToken {
            inner: 30812434208600000000,
        },
        executor_id: AccountId(
            "dev-20250127133221-12794903589331",
        ),
        status: SuccessReceiptId(DUn1HeaXxHmhmHjjWodFA1wurKqBE9wESMqUqVTPm9Vf),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: DUn1HeaXxHmhmHjjWodFA1wurKqBE9wESMqUqVTPm9Vf,
            block_hash: yBZRhMuRAJj3x2J9d5gTxpGZ67iZBG8Vvw4UD2iBBZk,
            logs: [
                "13:32:23 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 1737984743488994984; signer_account_id = \"dev-20250127133221-12794903589331\"; predecessor_account_id = \"dev-20250127133221-12794903589331\" }\n13:32:23 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }",
            ],
            receipt_ids: [
                5qyzmddKGknU4Vf1Ub1QYY3WsMsiveXmvLEZhzLAm389,
            ],
            gas_burnt: NearGas {
                inner: 3267288517176,
            },
            tokens_burnt: NearToken {
                inner: 326728851717600000000,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 5qyzmddKGknU4Vf1Ub1QYY3WsMsiveXmvLEZhzLAm389,
            block_hash: EzmzrTz3Smpaf9NHNFqmtnW1TVEbxYtkayL9SXrctDn2,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20250127133221-12794903589331",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.002537461741737016
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205827060513448
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.0021825487294735682
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account2): Some(
    (
        "alias2",
        1737984743488994984,
        0,
    ),
)


get_alias_map_borsh(alias2): Some(
    {
        AccountId(
            "dev-20250127133221-12794903589331",
        ): (
            1737984743488994984,
            0,
        ),
    },
)


claim_alias(account2, alias1): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 3988599013613,
    },
    transaction: ExecutionOutcome {
        transaction_hash: dEADg7Cn8o1Sbx7YUjnVu1SmLBLUkkgHJZyheSYyxqR,
        block_hash: 6XqmbhNZt5ouo2zR9yq4GCMZ8Voj8bfUfNvDb6YPTD7C,
        logs: [],
        receipt_ids: [
            CCXPPTzvaktNKw7cCepVswySNJBmLSUuRG12D6tExAf4,
        ],
        gas_burnt: NearGas {
            inner: 308124342086,
        },
        tokens_burnt: NearToken {
            inner: 30812434208600000000,
        },
        executor_id: AccountId(
            "dev-20250127133221-12794903589331",
        ),
        status: SuccessReceiptId(CCXPPTzvaktNKw7cCepVswySNJBmLSUuRG12D6tExAf4),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: CCXPPTzvaktNKw7cCepVswySNJBmLSUuRG12D6tExAf4,
            block_hash: 4r2it5C7myoxAse6LGPFCKkNPCoczyLrsjHaoxCpUVf4,
            logs: [
                "13:32:24 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1737984744500244631; signer_account_id = \"dev-20250127133221-12794903589331\"; predecessor_account_id = \"dev-20250127133221-12794903589331\" }\n13:32:24 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias2\") }",
            ],
            receipt_ids: [
                HY2DQYiUcqhP4RLyzF2oHmf7kj5MAvs2jMYuP5s5q7Bw,
            ],
            gas_burnt: NearGas {
                inner: 3457292109027,
            },
            tokens_burnt: NearToken {
                inner: 345729210902700000000,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: HY2DQYiUcqhP4RLyzF2oHmf7kj5MAvs2jMYuP5s5q7Bw,
            block_hash: BmReYnBHBabeDXt1yBGU8W4vSy4crrcTQ8qnCpeaUUYG,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20250127133221-12794903589331",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.002664384141093484
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205827060513448
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.002309471128830036
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account2): Some(
    (
        "alias1",
        1737984744500244631,
        1,
    ),
)


get_alias_map(account2, alias1): Some(
    {
        AccountId(
            "dev-20250127133221-12794903589331",
        ): (
            1737984744500244631,
            1,
        ),
        AccountId(
            "dev-20250127133218-76390440021427",
        ): (
            1737984741467937200,
            0,
        ),
    },
)


get_alias_map(account2, alias2): Some(
    {},
)


claim_alias(account1, alias2): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 3986219746385,
    },
    transaction: ExecutionOutcome {
        transaction_hash: Fg2yNPFiUSiwtY4U4uDwfd63W4qZBmKv9ypweo7mH2Tz,
        block_hash: A7a1bjzD2NwPTsxcn84k5nodw6KNa6dTRkoXHQjQTpqE,
        logs: [],
        receipt_ids: [
            dLiZCQKAzjRnheVvTfczJTZSR2yU8hz5M1bhi8QjoEC,
        ],
        gas_burnt: NearGas {
            inner: 308124342086,
        },
        tokens_burnt: NearToken {
            inner: 30812434208600000000,
        },
        executor_id: AccountId(
            "dev-20250127133218-76390440021427",
        ),
        status: SuccessReceiptId(dLiZCQKAzjRnheVvTfczJTZSR2yU8hz5M1bhi8QjoEC),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: dLiZCQKAzjRnheVvTfczJTZSR2yU8hz5M1bhi8QjoEC,
            block_hash: 2bXpLAo1J9ntgxC68SvDRLXeiCk2183ULS4ARXZv9ZMm,
            logs: [
                "13:32:25 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 1737984745511862043; signer_account_id = \"dev-20250127133218-76390440021427\"; predecessor_account_id = \"dev-20250127133218-76390440021427\" }\n13:32:25 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias1\") }",
            ],
            receipt_ids: [
                GFZKAgavqXTFsKuuUsFh5YfFE9V44nZ6eAbJWuh7X11P,
            ],
            gas_burnt: NearGas {
                inner: 3454912841799,
            },
            tokens_burnt: NearToken {
                inner: 345491284179900000000,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: GFZKAgavqXTFsKuuUsFh5YfFE9V44nZ6eAbJWuh7X11P,
            block_hash: FyssCQbRBRnymYA5VjVhnjJx2GbN1z6ZN6UcGd8XUZb8,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20250127133218-76390440021427",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.00266279479058518
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205827060513448
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.002307881778321732
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account1): Some(
    (
        "alias2",
        1737984745511862043,
        0,
    ),
)


get_alias_map(account1, alias2): Some(
    {
        AccountId(
            "dev-20250127133218-76390440021427",
        ): (
            1737984745511862043,
            0,
        ),
    },
)


get_alias_map(account1, alias1): Some(
    {
        AccountId(
            "dev-20250127133221-12794903589331",
        ): (
            1737984744500244631,
            1,
        ),
    },
)


claim_alias(account1, alias1): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 3988528256597,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 8gxkz2d6ZARqnFGLfS5jNncx2b1scbLG1SDBnwJpiLRG,
        block_hash: DrbUr5eD58u4ZGvoAELTJYP93DfYpZ1kpJ9c4MpvcPwi,
        logs: [],
        receipt_ids: [
            5kbGKJADyNZjZVH29hyuJLmeyoXofX1YGmbbFFX4ds7V,
        ],
        gas_burnt: NearGas {
            inner: 308124342086,
        },
        tokens_burnt: NearToken {
            inner: 30812434208600000000,
        },
        executor_id: AccountId(
            "dev-20250127133218-76390440021427",
        ),
        status: SuccessReceiptId(5kbGKJADyNZjZVH29hyuJLmeyoXofX1YGmbbFFX4ds7V),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 5kbGKJADyNZjZVH29hyuJLmeyoXofX1YGmbbFFX4ds7V,
            block_hash: 9jPs6GTeRttVEJmmfFBihxU84YbH4t1KP63euJmNZve6,
            logs: [
                "13:32:26 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1737984746522657466; signer_account_id = \"dev-20250127133218-76390440021427\"; predecessor_account_id = \"dev-20250127133218-76390440021427\" }\n13:32:26 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias2\") }",
            ],
            receipt_ids: [
                BMeewWoYtkXaCfaYSJtdWuP4q6SesT3wo4YgNam9nB5h,
            ],
            gas_burnt: NearGas {
                inner: 3457221352011,
            },
            tokens_burnt: NearToken {
                inner: 345722135201100000000,
            },
            executor_id: AccountId(
                "dev-20250127133217-57144872560345",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: BMeewWoYtkXaCfaYSJtdWuP4q6SesT3wo4YgNam9nB5h,
            block_hash: 9b14bNJNhvKTXgvJR9VyazYMhTFhNitp1hkvTw5xtSqt,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20250127133218-76390440021427",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.002664336875406796
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205827060513448
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.002309423863143348
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account1): Some(
    (
        "alias1",
        1737984746522657466,
        1,
    ),
)


get_alias_map(account1, alias1): Some(
    {
        AccountId(
            "dev-20250127133218-76390440021427",
        ): (
            1737984746522657466,
            1,
        ),
        AccountId(
            "dev-20250127133221-12794903589331",
        ): (
            1737984744500244631,
            0,
        ),
    },
)


get_alias_map(account1, alias2): Some(
    {},
)
In [ ]:
{ pwsh ../apps/spiral/temp/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #31 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path cube.dib"; options = { command = ../../../../deps/spiral/workspace/target/release/spiral dib --path cube.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "cube.dib"])) }
00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:02 v #10 > >
00:00:02 v #11 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #12 > > │ # cube
00:00:02 v #13 > >
00:00:02 v #14 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #15 > > │ ## cube
00:00:05 v #16 > >
00:00:05 v #17 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:05 v #18 > > open System
00:00:05 v #19 > > open System.Threading.Tasks
00:00:05 v #20 > > open System.Text
00:00:05 v #21 > >
00:00:05 v #22 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:05 v #23 > > let width = 160
00:00:05 v #24 > > let height = 44
00:00:05 v #25 > > let backgroundChar = '.'
00:00:05 v #26 > > let distanceFromCam = 100.0
00:00:05 v #27 > > let k1 = 40.0
00:00:05 v #28 > > let incrementSpeed = 0.6
00:00:05 v #29 > >
00:00:05 v #30 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:05 v #31 > > │ ### get_width
00:00:06 v #32 > >
00:00:06 v #33 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 v #34 > > inl get_width () =
00:00:06 v #35 > >     160i32
00:00:10 v #36 > >
00:00:10 v #37 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 v #38 > > │ ### get_height
00:00:10 v #39 > >
00:00:10 v #40 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 v #41 > > inl get_height () =
00:00:10 v #42 > >     44i32
00:00:10 v #43 > >
00:00:10 v #44 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 v #45 > > │ ### get_background_char
00:00:10 v #46 > >
00:00:10 v #47 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 v #48 > > inl get_background_char () =
00:00:10 v #49 > >     '.'
00:00:10 v #50 > >
00:00:10 v #51 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 v #52 > > │ ### get_distance_from_cam
00:00:10 v #53 > >
00:00:10 v #54 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 v #55 > > inl get_distance_from_cam () =
00:00:10 v #56 > >     100f64
00:00:11 v #57 > >
00:00:11 v #58 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 v #59 > > │ ### get_k1
00:00:11 v #60 > >
00:00:11 v #61 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 v #62 > > inl get_k1 () =
00:00:11 v #63 > >     40f64
00:00:11 v #64 > >
00:00:11 v #65 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 v #66 > > │ ### get_increment_speed
00:00:11 v #67 > >
00:00:11 v #68 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 v #69 > > inl get_increment_speed () =
00:00:11 v #70 > >     0.6f64
00:00:11 v #71 > >
00:00:11 v #72 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 v #73 > > │ ### rotation
00:00:11 v #74 > >
00:00:11 v #75 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 v #76 > > type Rotation = { a: float; b: float; c: float }
00:00:12 v #77 > >
00:00:12 v #78 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 v #79 > > type rotation =
00:00:12 v #80 > >     {
00:00:12 v #81 > >         a : f64
00:00:12 v #82 > >         b : f64
00:00:12 v #83 > >         c : f64
00:00:12 v #84 > >     }
00:00:12 v #85 > >
00:00:12 v #86 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 v #87 > > │ ### cube
00:00:12 v #88 > >
00:00:12 v #89 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 v #90 > > type Cube = { cubeWidth: float; horizontalOffset: float }
00:00:12 v #91 > >
00:00:12 v #92 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 v #93 > > type cube =
00:00:12 v #94 > >     {
00:00:12 v #95 > >         cube_width : f64
00:00:12 v #96 > >         horizontal_offset : f64
00:00:12 v #97 > >     }
00:00:12 v #98 > >
00:00:12 v #99 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 v #100 > > │ ### get_cubes
00:00:12 v #101 > >
00:00:12 v #102 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 v #103 > > let cubes = [[
00:00:12 v #104 > >     { cubeWidth = 20.0; horizontalOffset = -40.0 }
00:00:12 v #105 > >     { cubeWidth = 10.0; horizontalOffset = 10.0 }
00:00:12 v #106 > >     { cubeWidth = 5.0; horizontalOffset = 40.0 }
00:00:12 v #107 > > ]]
00:00:12 v #108 > >
00:00:12 v #109 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 v #110 > > inl get_cubes () : list cube =
00:00:12 v #111 > >     [[
00:00:12 v #112 > >         { cube_width = 20; horizontal_offset = -40 }
00:00:12 v #113 > >         { cube_width = 10; horizontal_offset = 10 }
00:00:12 v #114 > >         { cube_width = 5; horizontal_offset = 40 }
00:00:12 v #115 > >     ]]
00:00:12 v #116 > >
00:00:12 v #117 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 v #118 > > │ ### calculate_x
00:00:12 v #119 > >
00:00:12 v #120 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 v #121 > > let calculateX i j k (rot: Rotation) =
00:00:12 v #122 > >     let a, b, c = rot.a, rot.b, rot.c
00:00:12 v #123 > >     j * sin a * sin b * cos c - k * cos a * sin b * cos c +
00:00:12 v #124 > >     j * cos a * sin c + k * sin a * sin c + i * cos b * cos c
00:00:13 v #125 > >
00:00:13 v #126 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 v #127 > > inl calculate_x i j k (rot : rotation) =
00:00:13 v #128 > >     inl a, b, c = rot.a, rot.b, rot.c
00:00:13 v #129 > >     j * sin a * sin b * cos c - k * cos a * sin b * cos c +
00:00:13 v #130 > >     j * cos a * sin c + k * sin a * sin c + i * cos b * cos c
00:00:13 v #131 > >
00:00:13 v #132 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:13 v #133 > > │ ### calculate_y
00:00:13 v #134 > >
00:00:13 v #135 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:13 v #136 > > let calculateY i j k (rot: Rotation) =
00:00:13 v #137 > >     let a, b, c = rot.a, rot.b, rot.c
00:00:13 v #138 > >     j * cos a * cos c + k * sin a * cos c -
00:00:13 v #139 > >     j * sin a * sin b * sin c + k * cos a * sin b * sin c -
00:00:13 v #140 > >     i * cos b * sin c
00:00:13 v #141 > >
00:00:13 v #142 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 v #143 > > inl calculate_y i j k (rot : rotation) =
00:00:13 v #144 > >     inl a, b, c = rot.a, rot.b, rot.c
00:00:13 v #145 > >     j * cos a * cos c + k * sin a * cos c -
00:00:13 v #146 > >     j * sin a * sin b * sin c + k * cos a * sin b * sin c -
00:00:13 v #147 > >     i * cos b * sin c
00:00:13 v #148 > >
00:00:13 v #149 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:13 v #150 > > │ ### calculate_z
00:00:13 v #151 > >
00:00:13 v #152 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:13 v #153 > > let calculateZ i j k (rot: Rotation) =
00:00:13 v #154 > >     let a, b, c = rot.a, rot.b, rot.c
00:00:13 v #155 > >     k * cos a * cos b - j * sin a * cos b + i * sin b
00:00:13 v #156 > >
00:00:13 v #157 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 v #158 > > inl calculate_z i j k (rot : rotation) =
00:00:13 v #159 > >     inl a, b, c = rot.a, rot.b, rot.c
00:00:13 v #160 > >     k * cos a * cos b - j * sin a * cos b + i * sin b
00:00:13 v #161 > >
00:00:13 v #162 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:13 v #163 > > │ ### calculate_for_surface
00:00:13 v #164 > >
00:00:13 v #165 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:13 v #166 > > let calculateForSurface cubeX cubeY cubeZ ch rot horizontalOffset =
00:00:13 v #167 > >     let x = calculateX cubeX cubeY cubeZ rot
00:00:13 v #168 > >     let y = calculateY cubeX cubeY cubeZ rot
00:00:13 v #169 > >     let z = calculateZ cubeX cubeY cubeZ rot + distanceFromCam
00:00:13 v #170 > >     let ooz = 1.0 / z
00:00:13 v #171 > >     let xp = int (float width / 2.0 + horizontalOffset + k1 * ooz * x * 2.0)
00:00:13 v #172 > >     let yp = int (float height / 2.0 + k1 * ooz * y)
00:00:13 v #173 > >     let idx = xp + yp * width
00:00:13 v #174 > >     if idx >= 0 && idx < width * height
00:00:13 v #175 > >     then Some (idx, (ooz, ch))
00:00:13 v #176 > >     else None
00:00:13 v #177 > >
00:00:13 v #178 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 v #179 > > let calculate_for_surface cube_x cube_y cube_z ch rot horizontal_offset =
00:00:13 v #180 > >     inl x = calculate_x cube_x cube_y cube_z rot
00:00:13 v #181 > >     inl y = calculate_y cube_x cube_y cube_z rot
00:00:13 v #182 > >     inl z = calculate_z cube_x cube_y cube_z rot + get_distance_from_cam ()
00:00:13 v #183 > >     inl ooz = 1.0 / z
00:00:13 v #184 > >     inl xp = i32 (f64 (get_width ()) / 2.0 + horizontal_offset + get_k1 () * ooz
00:00:13 v #185 > > * x * 2.0)
00:00:13 v #186 > >     inl yp = i32 (f64 (get_height ()) / 2.0 + get_k1 () * ooz * y)
00:00:13 v #187 > >     inl idx = xp + yp * get_width ()
00:00:13 v #188 > >     if idx >= 0 && idx < get_width () * get_height ()
00:00:13 v #189 > >     then Some (idx, (ooz, ch))
00:00:13 v #190 > >     else None
00:00:14 v #191 > >
00:00:14 v #192 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:14 v #193 > > │ ### frange
00:00:14 v #194 > >
00:00:14 v #195 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #196 > > let frange start stop step =
00:00:14 v #197 > >     seq {
00:00:14 v #198 > >         let mutable current = start
00:00:14 v #199 > >         while (step > 0.0 && current < stop) || (step < 0.0 && current > stop)
00:00:14 v #200 > > do
00:00:14 v #201 > >             yield current
00:00:14 v #202 > >             current <- current + step
00:00:14 v #203 > >     }
00:00:14 v #204 > >
00:00:14 v #205 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 v #206 > > inl frange start stop step : _ f64 =
00:00:14 v #207 > >     fun () =>
00:00:14 v #208 > >         inl current = mut start
00:00:14 v #209 > >         loopw.while
00:00:14 v #210 > >             fun () => (step > 0f64 && *current < stop) || (step < 0 && *current
00:00:14 v #211 > > > stop)
00:00:14 v #212 > >             fun () =>
00:00:14 v #213 > >                 *current |> yield
00:00:14 v #214 > >                 current <- *current + step
00:00:14 v #215 > >     |> seq.new_seq
00:00:14 v #216 > >
00:00:14 v #217 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:14 v #218 > > │ ### get_cube_points
00:00:14 v #219 > >
00:00:14 v #220 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #221 > > let getCubePoints (cube: Cube) rot =
00:00:14 v #222 > >     let cw = cube.cubeWidth
00:00:14 v #223 > >     let ho = cube.horizontalOffset
00:00:14 v #224 > >     let cubeRange = frange (-cw) cw incrementSpeed
00:00:14 v #225 > >     seq {
00:00:14 v #226 > >         for cubeX in cubeRange do
00:00:14 v #227 > >             for cubeY in cubeRange do
00:00:14 v #228 > >                 let x =
00:00:14 v #229 > >                     [[
00:00:14 v #230 > >                         calculateForSurface cubeX cubeY (-cw) '@' rot ho
00:00:14 v #231 > >                         calculateForSurface cw cubeY cubeX '$' rot ho
00:00:14 v #232 > >                         calculateForSurface (-cw) cubeY (-cubeX) '~' rot ho
00:00:14 v #233 > >                         calculateForSurface (-cubeX) cubeY cw '#' rot ho
00:00:14 v #234 > >                         calculateForSurface cubeX (-cw) (-cubeY) ';' rot ho
00:00:14 v #235 > >                         calculateForSurface cubeX cw cubeY '+' rot ho
00:00:14 v #236 > >                     ]]
00:00:14 v #237 > >                     |> Seq.choose id
00:00:14 v #238 > >                 yield! x
00:00:14 v #239 > >     }
00:00:14 v #240 > >
00:00:14 v #241 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 v #242 > > inl get_cube_points (cube : cube) rot =
00:00:14 v #243 > >     inl cw = cube.cube_width
00:00:14 v #244 > >     inl ho = cube.horizontal_offset
00:00:14 v #245 > >     inl cube_range = frange -cw cw (get_increment_speed ())
00:00:14 v #246 > >     inl cube_range = join cube_range
00:00:14 v #247 > >     inl get cube_x cube_y =
00:00:14 v #248 > >         [[
00:00:14 v #249 > >             calculate_for_surface cube_x cube_y -cw ';' rot ho
00:00:14 v #250 > >             calculate_for_surface cw cube_y cube_x '\\' rot ho
00:00:14 v #251 > >             calculate_for_surface -cw cube_y -cube_x '/' rot ho
00:00:14 v #252 > >             calculate_for_surface -cube_x cube_y cw '=' rot ho
00:00:14 v #253 > >             calculate_for_surface cube_x -cw -cube_y '>' rot ho
00:00:14 v #254 > >             calculate_for_surface cube_x cw cube_y '<' rot ho
00:00:14 v #255 > >         ]]
00:00:14 v #256 > >         |> listm'.box
00:00:14 v #257 > >     inl get = join get
00:00:14 v #258 > >     inl box x : _ (i32 * f64 * char) =
00:00:14 v #259 > >         optionm'.box x
00:00:14 v #260 > >     inl box = join box
00:00:14 v #261 > >     fun () =>
00:00:14 v #262 > >         backend_switch {
00:00:14 v #263 > >             Fsharp = fun () =>
00:00:14 v #264 > >                 $'for cube_x in !cube_range do'
00:00:14 v #265 > >                 $'for cube_y in !cube_range do'
00:00:14 v #266 > >                 $'let x = !get cube_x cube_y |> Seq.choose !box '
00:00:14 v #267 > >                 $'yield\! x' : ()
00:00:14 v #268 > >             Python = fun () =>
00:00:14 v #269 > >                 $'cube_range = !cube_range '
00:00:14 v #270 > >                 $'get = !get '
00:00:14 v #271 > >                 $'box = !box '
00:00:14 v #272 > >                 $'for cube_x in cube_range:'
00:00:14 v #273 > >                 $'    for cube_y in cube_range:'
00:00:14 v #274 > >                 $'        x = get(cube_x)(cube_y)'
00:00:14 v #275 > >                 $'        for i in x:'
00:00:14 v #276 > >                 $'            i_ = box(i)'
00:00:14 v #277 > >                 $'            if i_ is not None: yield i' : ()
00:00:14 v #278 > >         }
00:00:14 v #279 > >     |> seq.new_seq
00:00:14 v #280 > >
00:00:14 v #281 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:14 v #282 > > │ ### generate_frame
00:00:14 v #283 > >
00:00:14 v #284 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #285 > > let generateFrame rot =
00:00:14 v #286 > >     let updates =
00:00:14 v #287 > >         cubes
00:00:14 v #288 > >         |> Seq.collect (fun cube -> getCubePoints cube rot)
00:00:14 v #289 > >     let buffer = Array.create (width * height) None
00:00:14 v #290 > >     updates
00:00:14 v #291 > >     |> Seq.iter (fun (idx, (ooz, ch)) ->
00:00:14 v #292 > >         match buffer.[[idx]] with
00:00:14 v #293 > >         | Some (prevOoz, _) when prevOoz >= ooz -> ()
00:00:14 v #294 > >         | _ -> buffer.[[idx]] <- Some (ooz, ch)
00:00:14 v #295 > >     )
00:00:14 v #296 > >     let sb = StringBuilder()
00:00:14 v #297 > >     for row in 0 .. (height - 1) do
00:00:14 v #298 > >         for col in 0 .. (width - 1) do
00:00:14 v #299 > >             let idx = col + row * width
00:00:14 v #300 > >             let ch =
00:00:14 v #301 > >                 match buffer.[[idx]] with
00:00:14 v #302 > >                 | Some (_, ch) -> ch
00:00:14 v #303 > >                 | None -> backgroundChar
00:00:14 v #304 > >             sb.Append(ch) |> ignore
00:00:14 v #305 > >         sb.AppendLine() |> ignore
00:00:14 v #306 > >     sb.ToString()
00:00:14 v #307 > >
00:00:14 v #308 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:14 v #309 > > //// test
00:00:14 v #310 > >
00:00:14 v #311 > > let rot = { a = 0.0; b = 0.0; c = 0.0 }
00:00:14 v #312 > > let frame = generateFrame rot
00:00:14 v #313 > > Console.Write frame
00:00:14 v #314 > >
00:00:14 v #315 > > ── [ 34.94ms - stdout ] ────────────────────────────────────────────────────────
00:00:14 v #316 > > │
00:00:14 v #317 > > ................................................................................
00:00:14 v #318 > > ................................................................................
00:00:14 v #319 > > │
00:00:14 v #320 > > ................................................................................
00:00:14 v #321 > > ................................................................................
00:00:14 v #322 > > │
00:00:14 v #323 > > ................................................................................
00:00:14 v #324 > > ................................................................................
00:00:14 v #325 > > │
00:00:14 v #326 > > ................................................................................
00:00:14 v #327 > > ................................................................................
00:00:14 v #328 > > │
00:00:14 v #329 > > ................................................................................
00:00:14 v #330 > > ................................................................................
00:00:14 v #331 > > │
00:00:14 v #332 > > ................................................................................
00:00:14 v #333 > > ................................................................................
00:00:14 v #334 > > │
00:00:14 v #335 > > ................................................................................
00:00:14 v #336 > > ................................................................................
00:00:14 v #337 > > │
00:00:14 v #338 > > ................................................................................
00:00:14 v #339 > > ................................................................................
00:00:14 v #340 > > │
00:00:14 v #341 > > ................................................................................
00:00:14 v #342 > > ................................................................................
00:00:14 v #343 > > │
00:00:14 v #344 > > ................................................................................
00:00:14 v #345 > > ................................................................................
00:00:14 v #346 > > │
00:00:14 v #347 > > ................................................................................
00:00:14 v #348 > > ................................................................................
00:00:14 v #349 > > │
00:00:14 v #350 > > ................................................................................
00:00:14 v #351 > > ................................................................................
00:00:14 v #352 > > │
00:00:14 v #353 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #354 > > ................................................................................
00:00:14 v #355 > > │
00:00:14 v #356 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #357 > > ................................................................................
00:00:14 v #358 > > │
00:00:14 v #359 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #360 > > ................................................................................
00:00:14 v #361 > > │
00:00:14 v #362 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #363 > > ................................................................................
00:00:14 v #364 > > │
00:00:14 v #365 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #366 > > ................................................................................
00:00:14 v #367 > > │
00:00:14 v #368 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #369 > > .@@@@@@@@@@@@@@@@@$.............................................................
00:00:14 v #370 > > │
00:00:14 v #371 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #372 > > .@@@@@@@@@@@@@@@@@$.............................................................
00:00:14 v #373 > > │
00:00:14 v #374 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #375 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
00:00:14 v #376 > > │
00:00:14 v #377 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #378 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
00:00:14 v #379 > > │
00:00:14 v #380 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #381 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
00:00:14 v #382 > > │
00:00:14 v #383 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #384 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
00:00:14 v #385 > > │
00:00:14 v #386 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #387 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
00:00:14 v #388 > > │
00:00:14 v #389 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #390 > > .@@@@@@@@@@@@@@@@@$................+++++++++....................................
00:00:14 v #391 > > │
00:00:14 v #392 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #393 > > .@@@@@@@@@@@@@@@@@$.............................................................
00:00:14 v #394 > > │
00:00:14 v #395 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #396 > > .+++++++++++++++++$.............................................................
00:00:14 v #397 > > │
00:00:14 v #398 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #399 > > ................................................................................
00:00:14 v #400 > > │
00:00:14 v #401 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #402 > > ................................................................................
00:00:14 v #403 > > │
00:00:14 v #404 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #405 > > ................................................................................
00:00:14 v #406 > > │
00:00:14 v #407 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #408 > > ................................................................................
00:00:14 v #409 > > │
00:00:14 v #410 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
00:00:14 v #411 > > ................................................................................
00:00:14 v #412 > > │
00:00:14 v #413 > > ....................++++++++++++++++++++++++++++++++++++++++....................
00:00:14 v #414 > > ................................................................................
00:00:14 v #415 > > │
00:00:14 v #416 > > ................................................................................
00:00:14 v #417 > > ................................................................................
00:00:14 v #418 > > │
00:00:14 v #419 > > ................................................................................
00:00:14 v #420 > > ................................................................................
00:00:14 v #421 > > │
00:00:14 v #422 > > ................................................................................
00:00:14 v #423 > > ................................................................................
00:00:14 v #424 > > │
00:00:14 v #425 > > ................................................................................
00:00:14 v #426 > > ................................................................................
00:00:14 v #427 > > │
00:00:14 v #428 > > ................................................................................
00:00:14 v #429 > > ................................................................................
00:00:14 v #430 > > │
00:00:14 v #431 > > ................................................................................
00:00:14 v #432 > > ................................................................................
00:00:14 v #433 > > │
00:00:14 v #434 > > ................................................................................
00:00:14 v #435 > > ................................................................................
00:00:14 v #436 > > │
00:00:14 v #437 > > ................................................................................
00:00:14 v #438 > > ................................................................................
00:00:14 v #439 > > │
00:00:14 v #440 > > ................................................................................
00:00:14 v #441 > > ................................................................................
00:00:14 v #442 > > │
00:00:14 v #443 > > ................................................................................
00:00:14 v #444 > > ................................................................................
00:00:14 v #445 > > │
00:00:14 v #446 > > ................................................................................
00:00:14 v #447 > > ................................................................................
00:00:14 v #448 > > │
00:00:14 v #449 > >
00:00:14 v #450 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 v #451 > > inl generate_frame rot =
00:00:14 v #452 > >     inl updates : seq.seq' (int * (f64 * char)) =
00:00:14 v #453 > >         inl get_cube_points' cube : seq.seq' (int * (f64 * char)) =
00:00:14 v #454 > >             get_cube_points cube rot
00:00:14 v #455 > >         inl cubes = get_cubes () |> listm'.box
00:00:14 v #456 > >         backend_switch {
00:00:14 v #457 > >             Fsharp = fun () =>
00:00:14 v #458 > >                 inl get_cube_points' = join get_cube_points'
00:00:14 v #459 > >                 (cubes |> $'Seq.collect !get_cube_points' ') : seq.seq' (int *
00:00:14 v #460 > > (f64 * char))
00:00:14 v #461 > >             Python = fun () =>
00:00:14 v #462 > >                 $'cubes = !cubes '
00:00:14 v #463 > >                 $'get_cube_points = !get_cube_points' '
00:00:14 v #464 > >                 $'[[x for cube in cubes for x in get_cube_points(*cube)]]' :
00:00:14 v #465 > > seq.seq' (int * (f64 * char))
00:00:14 v #466 > >         }
00:00:14 v #467 > >     inl none : _ (f64 * char) = None
00:00:14 v #468 > >     inl width = get_width ()
00:00:14 v #469 > >     inl height = get_height ()
00:00:14 v #470 > >     inl buffer =
00:00:14 v #471 > >         backend_switch {
00:00:14 v #472 > >             Fsharp = fun () =>
00:00:14 v #473 > >                 $'Array.create (!width * !height) !none ' : a int (option (f64 *
00:00:14 v #474 > > char))
00:00:14 v #475 > >             Python = fun () =>
00:00:14 v #476 > >                 $'[[!none for _ in range(!width * !height)]]' : a int (option
00:00:14 v #477 > > (f64 * char))
00:00:14 v #478 > >         }
00:00:14 v #479 > >
00:00:14 v #480 > >     inl fn idx ((ooz : f64), (ch : char)) =
00:00:14 v #481 > >         match buffer |> am'.index idx with
00:00:14 v #482 > >         | Some (prev_ooz, _) when prev_ooz >= ooz => ()
00:00:14 v #483 > >         | _ =>
00:00:14 v #484 > >             inl x = (ooz, ch) |> Some
00:00:14 v #485 > >             backend_switch {
00:00:14 v #486 > >                 Fsharp = fun () =>
00:00:14 v #487 > >                     $'!buffer.[[!idx]] <- !x ' : ()
00:00:14 v #488 > >                 Python = fun () =>
00:00:14 v #489 > >                     $'!buffer[[!idx]] = !x ' : ()
00:00:14 v #490 > >             }
00:00:14 v #491 > >     backend_switch {
00:00:14 v #492 > >         Fsharp = fun () =>
00:00:14 v #493 > >             updates
00:00:14 v #494 > >             |> $'Seq.iter (fun (struct (idx, ooz, ch)) -> !fn idx (ooz, ch))' :
00:00:14 v #495 > > ()
00:00:14 v #496 > >         Python = fun () =>
00:00:14 v #497 > >             $'for (idx, ooz, ch) in !updates: !fn(idx)(ooz, ch)' : ()
00:00:14 v #498 > >     }
00:00:14 v #499 > >
00:00:14 v #500 > >     inl sb = "" |> sm'.string_builder
00:00:14 v #501 > >     inl fn1 row =
00:00:14 v #502 > >         inl fn2 col =
00:00:14 v #503 > >             inl idx = col + row * width
00:00:14 v #504 > >             inl ch =
00:00:14 v #505 > >                 match buffer |> am'.index idx with
00:00:14 v #506 > >                 | Some (_, ch) => ch
00:00:14 v #507 > >                 | None => get_background_char ()
00:00:14 v #508 > >             sb |> sm'.builder_append (ch |> sm'.obj_to_string) |> ignore
00:00:14 v #509 > >
00:00:14 v #510 > >         backend_switch {
00:00:14 v #511 > >             Fsharp = fun () =>
00:00:14 v #512 > >                 $'for col in 0 .. (!width - 1) do !fn2 col' : ()
00:00:14 v #513 > >             Python = fun () =>
00:00:14 v #514 > >                 $'for col in range(!width): !fn2(col)' : ()
00:00:14 v #515 > >         }
00:00:14 v #516 > >         sb |> sm'.builder_append_line |> ignore
00:00:14 v #517 > >
00:00:14 v #518 > >     backend_switch {
00:00:14 v #519 > >         Fsharp = fun () =>
00:00:14 v #520 > >             $'for row in 0 .. (!height - 1) do !fn1 row' : ()
00:00:14 v #521 > >         Python = fun () =>
00:00:14 v #522 > >             $'for row in range(!height): !fn1(row)' : ()
00:00:14 v #523 > >     }
00:00:14 v #524 > >     sb |> sm'.obj_to_string
00:00:15 v #525 > >
00:00:15 v #526 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:15 v #527 > > //// test
00:00:15 v #528 > > ///! fsharp
00:00:15 v #529 > > ///! cuda
00:00:15 v #530 > > ///! rust
00:00:15 v #531 > > ///! typescript
00:00:15 v #532 > > ///! python
00:00:15 v #533 > >
00:00:15 v #534 > > { a = 0.0; b = 0.0; c = 0.0 }
00:00:15 v #535 > > |> generate_frame
00:00:15 v #536 > > |> console.write_line
00:00:25 v #537 > >
00:00:25 v #538 > > ── [ 10.89s - return value ] ───────────────────────────────────────────────────
00:00:25 v #539 > > │ "
00:00:25 v #540 > > │ .py output (Cuda):
00:00:25 v #541 > > │
00:00:25 v #542 > > ................................................................................
00:00:25 v #543 > > ................................................................................
00:00:25 v #544 > > │
00:00:25 v #545 > > ................................................................................
00:00:25 v #546 > > ................................................................................
00:00:25 v #547 > > │
00:00:25 v #548 > > ................................................................................
00:00:25 v #549 > > ................................................................................
00:00:25 v #550 > > │
00:00:25 v #551 > > ................................................................................
00:00:25 v #552 > > ................................................................................
00:00:25 v #553 > > │
00:00:25 v #554 > > ................................................................................
00:00:25 v #555 > > ................................................................................
00:00:25 v #556 > > │
00:00:25 v #557 > > ................................................................................
00:00:25 v #558 > > ................................................................................
00:00:25 v #559 > > │
00:00:25 v #560 > > ................................................................................
00:00:25 v #561 > > ................................................................................
00:00:25 v #562 > > │
00:00:25 v #563 > > ................................................................................
00:00:25 v #564 > > ................................................................................
00:00:25 v #565 > > │
00:00:25 v #566 > > ................................................................................
00:00:25 v #567 > > ................................................................................
00:00:25 v #568 > > │
00:00:25 v #569 > > .............................................................................
00:00:25 v #570 > > │
00:00:25 v #571 > > ................................................................................
00:00:25 v #572 > > ................................................................................
00:00:25 v #573 > > │
00:00:25 v #574 > > ................................................................................
00:00:25 v #575 > > ................................................................................
00:00:25 v #576 > > │
00:00:25 v #577 > > ................................................................................
00:00:25 v #578 > > ................................................................................
00:00:25 v #579 > > │
00:00:25 v #580 > > ................................................................................
00:00:25 v #581 > > ................................................................................
00:00:25 v #582 > > │
00:00:25 v #583 > > ................................................................................
00:00:25 v #584 > > ................................................................................
00:00:25 v #585 > > │
00:00:25 v #586 > > ................................................................................
00:00:25 v #587 > > ................................................................................
00:00:25 v #588 > > │
00:00:25 v #589 > > ................................................................................
00:00:25 v #590 > > ................................................................................
00:00:25 v #591 > > │
00:00:25 v #592 > > ................................................................................
00:00:25 v #593 > > ................................................................................
00:00:25 v #594 > > │
00:00:25 v #595 > > ................................................................................
00:00:25 v #596 > > ................................................................................
00:00:25 v #597 > > │
00:00:25 v #598 > > │
00:00:25 v #599 > > │
00:00:25 v #600 > > │ "
00:00:25 v #601 > > │
00:00:25 v #602 > >
00:00:25 v #603 > > ── [ 10.89s - stdout ] ─────────────────────────────────────────────────────────
00:00:25 v #604 > > │ .fsx output:
00:00:25 v #605 > > │
00:00:25 v #606 > > ................................................................................
00:00:25 v #607 > > ................................................................................
00:00:25 v #608 > > │
00:00:25 v #609 > > ................................................................................
00:00:25 v #610 > > ................................................................................
00:00:25 v #611 > > │
00:00:25 v #612 > > ................................................................................
00:00:25 v #613 > > ................................................................................
00:00:25 v #614 > > │
00:00:25 v #615 > > ................................................................................
00:00:25 v #616 > > ................................................................................
00:00:25 v #617 > > │
00:00:25 v #618 > > ................................................................................
00:00:25 v #619 > > ................................................................................
00:00:25 v #620 > > │
00:00:25 v #621 > > ................................................................................
00:00:25 v #622 > > ................................................................................
00:00:25 v #623 > > │
00:00:25 v #624 > > ................................................................................
00:00:25 v #625 > > ................................................................................
00:00:25 v #626 > > │
00:00:25 v #627 > > ................................................................................
00:00:25 v #628 > > ................................................................................
00:00:25 v #629 > > │
00:00:25 v #630 > > ................................................................................
00:00:25 v #631 > > ................................................................................
00:00:25 v #632 > > │
00:00:25 v #633 > > ................................................................................
00:00:25 v #634 > > ................................................................................
00:00:25 v #635 > > │
00:00:25 v #636 > > ................................................................................
00:00:25 v #637 > > ................................................................................
00:00:25 v #638 > > │
00:00:25 v #639 > > ................................................................................
00:00:25 v #640 > > ................................................................................
00:00:25 v #641 > > │
00:00:25 v #642 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #643 > > ................................................................................
00:00:25 v #644 > > │
00:00:25 v #645 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #646 > > ................................................................................
00:00:25 v #647 > > │
00:00:25 v #648 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #649 > > ................................................................................
00:00:25 v #650 > > │
00:00:25 v #651 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #652 > > ................................................................................
00:00:25 v #653 > > │
00:00:25 v #654 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #655 > > ................................................................................
00:00:25 v #656 > > │
00:00:25 v #657 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #658 > > .;;;;;;;;;;;;;;;;;\.............................................................
00:00:25 v #659 > > │
00:00:25 v #660 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #661 > > .;;;;;;;;;;;;;;;;;\.............................................................
00:00:25 v #662 > > │
00:00:25 v #663 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #664 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:25 v #665 > > │
00:00:25 v #666 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #667 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:25 v #668 > > │
00:00:25 v #669 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #670 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:25 v #671 > > │
00:00:25 v #672 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #673 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:25 v #674 > > │
00:00:25 v #675 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #676 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:25 v #677 > > │
00:00:25 v #678 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #679 > > .;;;;;;;;;;;;;;;;;\................<<<<<<<<<....................................
00:00:25 v #680 > > │
00:00:25 v #681 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #682 > > .;;;;;;;;;;;;;;;;;\.............................................................
00:00:25 v #683 > > │
00:00:25 v #684 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #685 > > .<<<<<<<<<<<<<<<<<\.............................................................
00:00:25 v #686 > > │
00:00:25 v #687 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #688 > > ................................................................................
00:00:25 v #689 > > │
00:00:25 v #690 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #691 > > ................................................................................
00:00:25 v #692 > > │
00:00:25 v #693 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #694 > > ................................................................................
00:00:25 v #695 > > │
00:00:25 v #696 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #697 > > ................................................................................
00:00:25 v #698 > > │
00:00:25 v #699 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:25 v #700 > > ................................................................................
00:00:25 v #701 > > │
00:00:25 v #702 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................
00:00:25 v #703 > > ................................................................................
00:00:25 v #704 > > │
00:00:25 v #705 > > ................................................................................
00:00:25 v #706 > > ................................................................................
00:00:25 v #707 > > │
00:00:25 v #708 > > ................................................................................
00:00:25 v #709 > > ................................................................................
00:00:25 v #710 > > │
00:00:25 v #711 > > ................................................................................
00:00:25 v #712 > > ................................................................................
00:00:25 v #713 > > │
00:00:25 v #714 > > ................................................................................
00:00:25 v #715 > > ................................................................................
00:00:25 v #716 > > │
00:00:25 v #717 > > ................................................................................
00:00:25 v #718 > > ................................................................................
00:00:25 v #719 > > │
00:00:25 v #720 > > ................................................................................
00:00:25 v #721 > > ................................................................................
00:00:25 v #722 > > │
00:00:25 v #723 > > ................................................................................
00:00:25 v #724 > > ................................................................................
00:00:25 v #725 > > │
00:00:25 v #726 > > ................................................................................
00:00:25 v #727 > > ................................................................................
00:00:25 v #728 > > │
00:00:25 v #729 > > ................................................................................
00:00:25 v #730 > > ................................................................................
00:00:25 v #731 > > │
00:00:25 v #732 > > ................................................................................
00:00:25 v #733 > > ................................................................................
00:00:25 v #734 > > │
00:00:25 v #735 > > ................................................................................
00:00:25 v #736 > > ................................................................................
00:00:25 v #737 > > │
00:00:25 v #738 > > │
00:00:25 v #739 > >
00:00:25 v #740 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 v #741 > > │ ### main_loop
00:00:25 v #742 > >
00:00:25 v #743 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:25 v #744 > > let rec mainLoop rot = async {
00:00:25 v #745 > >     let frame = generateFrame rot
00:00:25 v #746 > >     // Console.SetCursorPosition(0, 0)
00:00:25 v #747 > >     Console.Write(frame)
00:00:25 v #748 > >     let rot' = { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c + 0.01 }
00:00:25 v #749 > >     do! Async.Sleep 16
00:00:25 v #750 > >     return! mainLoop rot'
00:00:25 v #751 > > }
00:00:25 v #752 > >
00:00:25 v #753 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 v #754 > > let rec main_loop max i rot =
00:00:25 v #755 > >     fun () =>
00:00:25 v #756 > >         inl rot = join rot
00:00:25 v #757 > >         inl frame = rot |> generate_frame
00:00:25 v #758 > >         if max < 0 then
00:00:25 v #759 > >             run_target function
00:00:25 v #760 > >                 | Fsharp (Native) => fun () =>
00:00:25 v #761 > > $'System.Console.SetCursorPosition (0, 0)'
00:00:25 v #762 > >                 | Rust _ => fun () =>
00:00:25 v #763 > >                     open rust.rust_operators
00:00:25 v #764 > >                     !\($'$"print\!(\\\"\\\\x1B[[1;1H\\\")"')
00:00:25 v #765 > >                 | TypeScript _ => fun () =>
00:00:25 v #766 > >                     open typescript_operators
00:00:25 v #767 > >                     !\($'$"process.stdout.write(\'\\\\u001B[[1;1H\')"')
00:00:25 v #768 > >                 | Python _ => fun () =>
00:00:25 v #769 > >                     open python_operators
00:00:25 v #770 > >                     // global "import sys"
00:00:25 v #771 > >                     !\($'$"sys.stdout.write(\\\"\\\\033[[1;1H\\\")"')
00:00:25 v #772 > >                 | Cuda _ => fun () =>
00:00:25 v #773 > >                     global "import sys"
00:00:25 v #774 > >                     $'sys.stdout.write("\\033[[1;1H")'
00:00:25 v #775 > >                 | _ => fun () => ()
00:00:25 v #776 > >         frame |> console.write_line
00:00:25 v #777 > >         async.sleep 1 |> async.do
00:00:25 v #778 > >         if max > 0 && i >= max
00:00:25 v #779 > >         then ()
00:00:25 v #780 > >         else
00:00:25 v #781 > >             { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c + 0.01 }
00:00:25 v #782 > >             |> main_loop max (i + 1)
00:00:25 v #783 > >             |> async.return_await'
00:00:25 v #784 > >     |> async.new_async_unit
00:00:26 v #785 > >
00:00:26 v #786 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 v #787 > > │ ### main
00:00:26 v #788 > >
00:00:26 v #789 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:26 v #790 > > // [[<EntryPoint>]]
00:00:26 v #791 > > let main argv =
00:00:26 v #792 > >     // Console.CursorVisible <- false
00:00:26 v #793 > >     Async.StartImmediate (mainLoop { a = 0.0; b = 0.0; c = 0.0 })
00:00:26 v #794 > >     System.Threading.Thread.Sleep(1000)
00:00:26 v #795 > >
00:00:26 v #796 > > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:26 v #797 > > // main [[||]]
00:00:26 v #798 > >
00:00:26 v #799 > > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 v #800 > > inl main (_args : array_base string) =
00:00:26 v #801 > >     inl console =
00:00:26 v #802 > >         run_target function
00:00:26 v #803 > >         | Fsharp (Wasm) => fun () => false
00:00:26 v #804 > >         | _ => fun () =>
00:00:26 v #805 > >             ((join "VSCODE_PID") |> env.get_environment_variable |> sm'.length
00:00:26 v #806 > > |> (=) 0i32)
00:00:26 v #807 > >                 && ("AUTOMATION" |> env.get_environment_variable |> sm'.length
00:00:26 v #808 > > |> (=) 0i32)
00:00:26 v #809 > >     if console then
00:00:26 v #810 > >         run_target function
00:00:26 v #811 > >             | Fsharp (Native) => fun () => $'System.Console.CursorVisible <-
00:00:26 v #812 > > false'
00:00:26 v #813 > >             | Rust _ => fun () =>
00:00:26 v #814 > >                 open rust.rust_operators
00:00:26 v #815 > >                 !\($'$"print\!(\\\"\\\\x1B[[?25l\\\")"')
00:00:26 v #816 > >             | TypeScript _ => fun () =>
00:00:26 v #817 > >                 open typescript_operators
00:00:26 v #818 > >                 !\($'$"process.stdout.write(\'\\\\u001B[[?25l\')"')
00:00:26 v #819 > >             | Python _ => fun () =>
00:00:26 v #820 > >                 open python_operators
00:00:26 v #821 > >                 python.import_all "sys"
00:00:26 v #822 > >                 !\($'$"sys.stdout.write(\\\"\\\\033[[?25l\\\")"')
00:00:26 v #823 > >             | _ => fun () => ()
00:00:26 v #824 > >     main_loop (if console then -1i32 else 50) 1i32 { a = 0.0; b = 0.0; c = 0.0 }
00:00:26 v #825 > >     |> fun x =>
00:00:26 v #826 > >         run_target_args' x function
00:00:26 v #827 > >         | Fsharp (Wasm)
00:00:26 v #828 > >         | TypeScript _ => fun x =>
00:00:26 v #829 > >             x
00:00:26 v #830 > >             |> async.start_child
00:00:26 v #831 > >             |> ignore
00:00:26 v #832 > >         | Python _ => fun x =>
00:00:26 v #833 > >             x
00:00:26 v #834 > >             |> async.start_immediate
00:00:26 v #835 > >             threading.sleep' 2000
00:00:26 v #836 > >         | _ => fun x =>
00:00:26 v #837 > >             x
00:00:26 v #838 > >             |> async.run_synchronously
00:00:26 v #839 > >
00:00:26 v #840 > > inl main () =
00:00:26 v #841 > >     backend_switch {
00:00:26 v #842 > >         Fsharp = fun () =>
00:00:26 v #843 > >             $'let main_ = !main '
00:00:26 v #844 > >             $'#if \!FABLE_COMPILER_RUST'
00:00:26 v #845 > >             $'main_ [[||]]' : ()
00:00:26 v #846 > >             $'#else'
00:00:26 v #847 > >             $'let main args = main_ [[||]]; 0' : ()
00:00:26 v #848 > >             $'#endif' : ()
00:00:26 v #849 > >         Python = fun () =>
00:00:26 v #850 > >             main ;[[]]
00:00:26 v #851 > >     }
00:00:26 v #852 > >     : ()
00:00:27 v #853 > >
00:00:27 v #854 > > ── [ 1.79s - stdout ] ──────────────────────────────────────────────────────────
00:00:28 v #855 > > │
00:00:28 v #856 > > ................................................................................
00:00:28 v #857 > > ................................................................................
00:00:28 v #858 > > │
00:00:28 v #859 > > ................................................................................
00:00:28 v #860 > > ................................................................................
00:00:28 v #861 > > │
00:00:28 v #862 > > ................................................................................
00:00:28 v #863 > > ................................................................................
00:00:28 v #864 > > │
00:00:28 v #865 > > ................................................................................
00:00:28 v #866 > > ................................................................................
00:00:28 v #867 > > │
00:00:28 v #868 > > ................................................................................
00:00:28 v #869 > > ................................................................................
00:00:28 v #870 > > │
00:00:28 v #871 > > ................................................................................
00:00:28 v #872 > > ................................................................................
00:00:28 v #873 > > │
00:00:28 v #874 > > ................................................................................
00:00:28 v #875 > > ................................................................................
00:00:28 v #876 > > │
00:00:28 v #877 > > ................................................................................
00:00:28 v #878 > > ................................................................................
00:00:28 v #879 > > │
00:00:28 v #880 > > ................................................................................
00:00:28 v #881 > > ................................................................................
00:00:28 v #882 > > │
00:00:28 v #883 > > ................................................................................
00:00:28 v #884 > > ................................................................................
00:00:28 v #885 > > │
00:00:28 v #886 > > ................................................................................
00:00:28 v #887 > > ................................................................................
00:00:28 v #888 > > │
00:00:28 v #889 > > ................................................................................
00:00:28 v #890 > > ................................................................................
00:00:28 v #891 > > │
00:00:28 v #892 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #893 > > ................................................................................
00:00:28 v #894 > > │
00:00:28 v #895 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #896 > > ................................................................................
00:00:28 v #897 > > │
00:00:28 v #898 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #899 > > ................................................................................
00:00:28 v #900 > > │
00:00:28 v #901 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #902 > > ................................................................................
00:00:28 v #903 > > │
00:00:28 v #904 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #905 > > ................................................................................
00:00:28 v #906 > > │
00:00:28 v #907 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #908 > > .;;;;;;;;;;;;;;;;;\.............................................................
00:00:28 v #909 > > │
00:00:28 v #910 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #911 > > .;;;;;;;;;;;;;;;;;\.............................................................
00:00:28 v #912 > > │
00:00:28 v #913 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #914 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:28 v #915 > > │
00:00:28 v #916 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #917 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:28 v #918 > > │
00:00:28 v #919 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #920 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:28 v #921 > > │
00:00:28 v #922 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #923 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:28 v #924 > > │
00:00:28 v #925 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #926 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
00:00:28 v #927 > > │
00:00:28 v #928 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #929 > > .;;;;;;;;;;;;;;;;;\................<<<<<<<<<....................................
00:00:28 v #930 > > │
00:00:28 v #931 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #932 > > .;;;;;;;;;;;;;;;;;\.............................................................
00:00:28 v #933 > > │
00:00:28 v #934 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #935 > > .<<<<<<<<<<<<<<<<<\.............................................................
00:00:28 v #936 > > │
00:00:28 v #937 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #938 > > ................................................................................
00:00:28 v #939 > > │
00:00:28 v #940 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #941 > > ................................................................................
00:00:28 v #942 > > │
00:00:28 v #943 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #944 > > ................................................................................
00:00:28 v #945 > > │
00:00:28 v #946 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #947 > > ................................................................................
00:00:28 v #948 > > │
00:00:28 v #949 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #950 > > ................................................................................
00:00:28 v #951 > > │
00:00:28 v #952 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................
00:00:28 v #953 > > ................................................................................
00:00:28 v #954 > > │
00:00:28 v #955 > > ................................................................................
00:00:28 v #956 > > ................................................................................
00:00:28 v #957 > > │
00:00:28 v #958 > > ................................................................................
00:00:28 v #959 > > ................................................................................
00:00:28 v #960 > > │
00:00:28 v #961 > > ................................................................................
00:00:28 v #962 > > ................................................................................
00:00:28 v #963 > > │
00:00:28 v #964 > > ................................................................................
00:00:28 v #965 > > ................................................................................
00:00:28 v #966 > > │
00:00:28 v #967 > > ................................................................................
00:00:28 v #968 > > ................................................................................
00:00:28 v #969 > > │
00:00:28 v #970 > > ................................................................................
00:00:28 v #971 > > ................................................................................
00:00:28 v #972 > > │
00:00:28 v #973 > > ................................................................................
00:00:28 v #974 > > ................................................................................
00:00:28 v #975 > > │
00:00:28 v #976 > > ................................................................................
00:00:28 v #977 > > ................................................................................
00:00:28 v #978 > > │
00:00:28 v #979 > > ................................................................................
00:00:28 v #980 > > ................................................................................
00:00:28 v #981 > > │
00:00:28 v #982 > > ................................................................................
00:00:28 v #983 > > ................................................................................
00:00:28 v #984 > > │
00:00:28 v #985 > > ................................................................................
00:00:28 v #986 > > ................................................................................
00:00:28 v #987 > > │
00:00:28 v #988 > > │
00:00:28 v #989 > > ................................................................................
00:00:28 v #990 > > ................................................................................
00:00:28 v #991 > > │
00:00:28 v #992 > > ................................................................................
00:00:28 v #993 > > ................................................................................
00:00:28 v #994 > > │
00:00:28 v #995 > > ................................................................................
00:00:28 v #996 > > ................................................................................
00:00:28 v #997 > > │
00:00:28 v #998 > > ................................................................................
00:00:28 v #999 > > ................................................................................
00:00:28 v #1000 > > │
00:00:28 v #1001 > > ................................................................................
00:00:28 v #1002 > > ................................................................................
00:00:28 v #1003 > > │
00:00:28 v #1004 > > ................................................................................
00:00:28 v #1005 > > ................................................................................
00:00:28 v #1006 > > │
00:00:28 v #1007 > > ................................................................................
00:00:28 v #1008 > > ................................................................................
00:00:28 v #1009 > > │
00:00:28 v #1010 > > ................................................................................
00:00:28 v #1011 > > ................................................................................
00:00:28 v #1012 > > │
00:00:28 v #1013 > > ................................................................................
00:00:28 v #1014 > > ................................................................................
00:00:28 v #1015 > > │
00:00:28 v #1016 > > ................................................................................
00:00:28 v #1017 > > ................................................................................
00:00:28 v #1018 > > │
00:00:28 v #1019 > > ................................................................................
00:00:28 v #1020 > > ................................................................................
00:00:28 v #1021 > > │
00:00:28 v #1022 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1023 > > ................................................................................
00:00:28 v #1024 > > │
00:00:28 v #1025 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1026 > > ................................................................................
00:00:28 v #1027 > > │
00:00:28 v #1028 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1029 > > ................................................................................
00:00:28 v #1030 > > │
00:00:28 v #1031 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1032 > > ................................................................................
00:00:28 v #1033 > > │
00:00:28 v #1034 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1035 > > ................................................................................
00:00:28 v #1036 > > │
00:00:28 v #1037 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1038 > > ................................................................................
00:00:28 v #1039 > > │
00:00:28 v #1040 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1041 > > .;;;;;;;;;;;;;;;;;;\............................................................
00:00:28 v #1042 > > │
00:00:28 v #1043 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1044 > > .;;;;;;;;;;;;;;;;;;\............................................................
00:00:28 v #1045 > > │
00:00:28 v #1046 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1047 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;...................................
00:00:28 v #1048 > > │
00:00:28 v #1049 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1050 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;...................................
00:00:28 v #1051 > > │
00:00:28 v #1052 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1053 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;...................................
00:00:28 v #1054 > > │
00:00:28 v #1055 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1056 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;...................................
00:00:28 v #1057 > > │
00:00:28 v #1058 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1059 > > .;;;;;;;;;;;;;;;;;;;................;;;;;<<<<...................................
00:00:28 v #1060 > > │
00:00:28 v #1061 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1062 > > .;;;;;;;;;;;;;;;;;;;................<<<<<.......................................
00:00:28 v #1063 > > │
00:00:28 v #1064 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1065 > > .;;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1066 > > │
00:00:28 v #1067 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1068 > > .<<<<<<<<<<<<<<<<<<<............................................................
00:00:28 v #1069 > > │
00:00:28 v #1070 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1071 > > ................................................................................
00:00:28 v #1072 > > │
00:00:28 v #1073 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1074 > > ................................................................................
00:00:28 v #1075 > > │
00:00:28 v #1076 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1077 > > ................................................................................
00:00:28 v #1078 > > │
00:00:28 v #1079 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1080 > > ................................................................................
00:00:28 v #1081 > > │
00:00:28 v #1082 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\..................
00:00:28 v #1083 > > ................................................................................
00:00:28 v #1084 > > │
00:00:28 v #1085 > > ................................................................................
00:00:28 v #1086 > > ................................................................................
00:00:28 v #1087 > > │
00:00:28 v #1088 > > ................................................................................
00:00:28 v #1089 > > ................................................................................
00:00:28 v #1090 > > │
00:00:28 v #1091 > > ................................................................................
00:00:28 v #1092 > > ................................................................................
00:00:28 v #1093 > > │
00:00:28 v #1094 > > ................................................................................
00:00:28 v #1095 > > ................................................................................
00:00:28 v #1096 > > │
00:00:28 v #1097 > > ................................................................................
00:00:28 v #1098 > > ................................................................................
00:00:28 v #1099 > > │
00:00:28 v #1100 > > ................................................................................
00:00:28 v #1101 > > ................................................................................
00:00:28 v #1102 > > │
00:00:28 v #1103 > > ................................................................................
00:00:28 v #1104 > > ................................................................................
00:00:28 v #1105 > > │
00:00:28 v #1106 > > ................................................................................
00:00:28 v #1107 > > ................................................................................
00:00:28 v #1108 > > │
00:00:28 v #1109 > > ................................................................................
00:00:28 v #1110 > > ................................................................................
00:00:28 v #1111 > > │
00:00:28 v #1112 > > ................................................................................
00:00:28 v #1113 > > ................................................................................
00:00:28 v #1114 > > │
00:00:28 v #1115 > > ................................................................................
00:00:28 v #1116 > > ................................................................................
00:00:28 v #1117 > > │
00:00:28 v #1118 > > ................................................................................
00:00:28 v #1119 > > ................................................................................
00:00:28 v #1120 > > │
00:00:28 v #1121 > > │
00:00:28 v #1122 > > ................................................................................
00:00:28 v #1123 > > ................................................................................
00:00:28 v #1124 > > │
00:00:28 v #1125 > > ................................................................................
00:00:28 v #1126 > > ................................................................................
00:00:28 v #1127 > > │
00:00:28 v #1128 > > ................................................................................
00:00:28 v #1129 > > ................................................................................
00:00:28 v #1130 > > │
00:00:28 v #1131 > > ................................................................................
00:00:28 v #1132 > > ................................................................................
00:00:28 v #1133 > > │
00:00:28 v #1134 > > ................................................................................
00:00:28 v #1135 > > ................................................................................
00:00:28 v #1136 > > │
00:00:28 v #1137 > > ................................................................................
00:00:28 v #1138 > > ................................................................................
00:00:28 v #1139 > > │
00:00:28 v #1140 > > ................................................................................
00:00:28 v #1141 > > ................................................................................
00:00:28 v #1142 > > │
00:00:28 v #1143 > > ................................................................................
00:00:28 v #1144 > > ................................................................................
00:00:28 v #1145 > > │
00:00:28 v #1146 > > ................................................................................
00:00:28 v #1147 > > ................................................................................
00:00:28 v #1148 > > │
00:00:28 v #1149 > > ................................................................................
00:00:28 v #1150 > > ................................................................................
00:00:28 v #1151 > > │
00:00:28 v #1152 > > ................................................................................
00:00:28 v #1153 > > ................................................................................
00:00:28 v #1154 > > │
00:00:28 v #1155 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1156 > > ................................................................................
00:00:28 v #1157 > > │
00:00:28 v #1158 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1159 > > ................................................................................
00:00:28 v #1160 > > │
00:00:28 v #1161 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1162 > > ................................................................................
00:00:28 v #1163 > > │
00:00:28 v #1164 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1165 > > ................................................................................
00:00:28 v #1166 > > │
00:00:28 v #1167 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1168 > > ................................................................................
00:00:28 v #1169 > > │
00:00:28 v #1170 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1171 > > ................................................................................
00:00:28 v #1172 > > │
00:00:28 v #1173 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1174 > > .;;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1175 > > │
00:00:28 v #1176 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1177 > > .;;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1178 > > │
00:00:28 v #1179 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1180 > > .;;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;...................................
00:00:28 v #1181 > > │
00:00:28 v #1182 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1183 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
00:00:28 v #1184 > > │
00:00:28 v #1185 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1186 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
00:00:28 v #1187 > > │
00:00:28 v #1188 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1189 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
00:00:28 v #1190 > > │
00:00:28 v #1191 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1192 > > .;;;;;;;;;;;;;;;;;;;.............../<<<<<<<<<...................................
00:00:28 v #1193 > > │
00:00:28 v #1194 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1195 > > ..;;;;;;;;;;;;;;;;;;...............<<<<<<<<<....................................
00:00:28 v #1196 > > │
00:00:28 v #1197 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1198 > > ..;;;;;;;;;;<<<<<<<<............................................................
00:00:28 v #1199 > > │
00:00:28 v #1200 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1201 > > ..<<<<<<<<<<....................................................................
00:00:28 v #1202 > > │
00:00:28 v #1203 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1204 > > ................................................................................
00:00:28 v #1205 > > │
00:00:28 v #1206 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1207 > > ................................................................................
00:00:28 v #1208 > > │
00:00:28 v #1209 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1210 > > ................................................................................
00:00:28 v #1211 > > │
00:00:28 v #1212 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<\.................
00:00:28 v #1213 > > ................................................................................
00:00:28 v #1214 > > │
00:00:28 v #1215 > > .....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<...............................
00:00:28 v #1216 > > ................................................................................
00:00:28 v #1217 > > │
00:00:28 v #1218 > > ................................................................................
00:00:28 v #1219 > > ................................................................................
00:00:28 v #1220 > > │
00:00:28 v #1221 > > ................................................................................
00:00:28 v #1222 > > ................................................................................
00:00:28 v #1223 > > │
00:00:28 v #1224 > > ................................................................................
00:00:28 v #1225 > > ................................................................................
00:00:28 v #1226 > > │
00:00:28 v #1227 > > ................................................................................
00:00:28 v #1228 > > ................................................................................
00:00:28 v #1229 > > │
00:00:28 v #1230 > > ................................................................................
00:00:28 v #1231 > > ................................................................................
00:00:28 v #1232 > > │
00:00:28 v #1233 > > ................................................................................
00:00:28 v #1234 > > ................................................................................
00:00:28 v #1235 > > │
00:00:28 v #1236 > > ................................................................................
00:00:28 v #1237 > > ................................................................................
00:00:28 v #1238 > > │
00:00:28 v #1239 > > ................................................................................
00:00:28 v #1240 > > ................................................................................
00:00:28 v #1241 > > │
00:00:28 v #1242 > > ................................................................................
00:00:28 v #1243 > > ................................................................................
00:00:28 v #1244 > > │
00:00:28 v #1245 > > ................................................................................
00:00:28 v #1246 > > ................................................................................
00:00:28 v #1247 > > │
00:00:28 v #1248 > > ................................................................................
00:00:28 v #1249 > > ................................................................................
00:00:28 v #1250 > > │
00:00:28 v #1251 > > ................................................................................
00:00:28 v #1252 > > ................................................................................
00:00:28 v #1253 > > │
00:00:28 v #1254 > > │
00:00:28 v #1255 > > ................................................................................
00:00:28 v #1256 > > ................................................................................
00:00:28 v #1257 > > │
00:00:28 v #1258 > > ................................................................................
00:00:28 v #1259 > > ................................................................................
00:00:28 v #1260 > > │
00:00:28 v #1261 > > ................................................................................
00:00:28 v #1262 > > ................................................................................
00:00:28 v #1263 > > │
00:00:28 v #1264 > > ................................................................................
00:00:28 v #1265 > > ................................................................................
00:00:28 v #1266 > > │
00:00:28 v #1267 > > ................................................................................
00:00:28 v #1268 > > ................................................................................
00:00:28 v #1269 > > │
00:00:28 v #1270 > > ................................................................................
00:00:28 v #1271 > > ................................................................................
00:00:28 v #1272 > > │
00:00:28 v #1273 > > ................................................................................
00:00:28 v #1274 > > ................................................................................
00:00:28 v #1275 > > │
00:00:28 v #1276 > > ................................................................................
00:00:28 v #1277 > > ................................................................................
00:00:28 v #1278 > > │
00:00:28 v #1279 > > ................................................................................
00:00:28 v #1280 > > ................................................................................
00:00:28 v #1281 > > │
00:00:28 v #1282 > > ................................................................................
00:00:28 v #1283 > > ................................................................................
00:00:28 v #1284 > > │
00:00:28 v #1285 > > ......................;;;;;;;;;;;...............................................
00:00:28 v #1286 > > ................................................................................
00:00:28 v #1287 > > │
00:00:28 v #1288 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1289 > > ................................................................................
00:00:28 v #1290 > > │
00:00:28 v #1291 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1292 > > ................................................................................
00:00:28 v #1293 > > │
00:00:28 v #1294 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1295 > > ................................................................................
00:00:28 v #1296 > > │
00:00:28 v #1297 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1298 > > ................................................................................
00:00:28 v #1299 > > │
00:00:28 v #1300 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1301 > > ................................................................................
00:00:28 v #1302 > > │
00:00:28 v #1303 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1304 > > ..............;;;;;;............................................................
00:00:28 v #1305 > > │
00:00:28 v #1306 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1307 > > .>;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1308 > > │
00:00:28 v #1309 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1310 > > ./;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1311 > > │
00:00:28 v #1312 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1313 > > ./;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;...................................
00:00:28 v #1314 > > │
00:00:28 v #1315 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1316 > > ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
00:00:28 v #1317 > > │
00:00:28 v #1318 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1319 > > ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
00:00:28 v #1320 > > │
00:00:28 v #1321 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1322 > > ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;...................................
00:00:28 v #1323 > > │
00:00:28 v #1324 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1325 > > ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<<...................................
00:00:28 v #1326 > > │
00:00:28 v #1327 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1328 > > ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<....................................
00:00:28 v #1329 > > │
00:00:28 v #1330 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1331 > > ./<<<<<<<<<<<<<<<<<<<...........................................................
00:00:28 v #1332 > > │
00:00:28 v #1333 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1334 > > ./<<<<<<<<<<<<<<<...............................................................
00:00:28 v #1335 > > │
00:00:28 v #1336 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
00:00:28 v #1337 > > ................................................................................
00:00:28 v #1338 > > │
00:00:28 v #1339 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
00:00:28 v #1340 > > ................................................................................
00:00:28 v #1341 > > │
00:00:28 v #1342 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #1343 > > ................................................................................
00:00:28 v #1344 > > │
00:00:28 v #1345 > > ......................;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................
00:00:28 v #1346 > > ................................................................................
00:00:28 v #1347 > > │
00:00:28 v #1348 > > ......................<<<<<<<<<<................................................
00:00:28 v #1349 > > ................................................................................
00:00:28 v #1350 > > │
00:00:28 v #1351 > > ................................................................................
00:00:28 v #1352 > > ................................................................................
00:00:28 v #1353 > > │
00:00:28 v #1354 > > ................................................................................
00:00:28 v #1355 > > ................................................................................
00:00:28 v #1356 > > │
00:00:28 v #1357 > > ................................................................................
00:00:28 v #1358 > > ................................................................................
00:00:28 v #1359 > > │
00:00:28 v #1360 > > ................................................................................
00:00:28 v #1361 > > ................................................................................
00:00:28 v #1362 > > │
00:00:28 v #1363 > > ................................................................................
00:00:28 v #1364 > > ................................................................................
00:00:28 v #1365 > > │
00:00:28 v #1366 > > ................................................................................
00:00:28 v #1367 > > ................................................................................
00:00:28 v #1368 > > │
00:00:28 v #1369 > > ................................................................................
00:00:28 v #1370 > > ................................................................................
00:00:28 v #1371 > > │
00:00:28 v #1372 > > ................................................................................
00:00:28 v #1373 > > ................................................................................
00:00:28 v #1374 > > │
00:00:28 v #1375 > > ................................................................................
00:00:28 v #1376 > > ................................................................................
00:00:28 v #1377 > > │
00:00:28 v #1378 > > ................................................................................
00:00:28 v #1379 > > ................................................................................
00:00:28 v #1380 > > │
00:00:28 v #1381 > > ................................................................................
00:00:28 v #1382 > > ................................................................................
00:00:28 v #1383 > > │
00:00:28 v #1384 > > ................................................................................
00:00:28 v #1385 > > ................................................................................
00:00:28 v #1386 > > │
00:00:28 v #1387 > > │
00:00:28 v #1388 > > ................................................................................
00:00:28 v #1389 > > ................................................................................
00:00:28 v #1390 > > │
00:00:28 v #1391 > > ................................................................................
00:00:28 v #1392 > > ................................................................................
00:00:28 v #1393 > > │
00:00:28 v #1394 > > ................................................................................
00:00:28 v #1395 > > ................................................................................
00:00:28 v #1396 > > │
00:00:28 v #1397 > > ................................................................................
00:00:28 v #1398 > > ................................................................................
00:00:28 v #1399 > > │
00:00:28 v #1400 > > ................................................................................
00:00:28 v #1401 > > ................................................................................
00:00:28 v #1402 > > │
00:00:28 v #1403 > > ................................................................................
00:00:28 v #1404 > > ................................................................................
00:00:28 v #1405 > > │
00:00:28 v #1406 > > ................................................................................
00:00:28 v #1407 > > ................................................................................
00:00:28 v #1408 > > │
00:00:28 v #1409 > > ................................................................................
00:00:28 v #1410 > > ................................................................................
00:00:28 v #1411 > > │
00:00:28 v #1412 > > ................................................................................
00:00:28 v #1413 > > ................................................................................
00:00:28 v #1414 > > │
00:00:28 v #1415 > > ................................................................................
00:00:28 v #1416 > > ................................................................................
00:00:28 v #1417 > > │
00:00:28 v #1418 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #1419 > > ................................................................................
00:00:28 v #1420 > > │
00:00:28 v #1421 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #1422 > > ................................................................................
00:00:28 v #1423 > > │
00:00:28 v #1424 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1425 > > ................................................................................
00:00:28 v #1426 > > │
00:00:28 v #1427 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1428 > > ................................................................................
00:00:28 v #1429 > > │
00:00:28 v #1430 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1431 > > ................................................................................
00:00:28 v #1432 > > │
00:00:28 v #1433 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1434 > > ................................................................................
00:00:28 v #1435 > > │
00:00:28 v #1436 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #1437 > > ..;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1438 > > │
00:00:28 v #1439 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1440 > > .>;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1441 > > │
00:00:28 v #1442 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1443 > > ./;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1444 > > │
00:00:28 v #1445 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1446 > > >/;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;...................................
00:00:28 v #1447 > > │
00:00:28 v #1448 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1449 > > ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;...................................
00:00:28 v #1450 > > │
00:00:28 v #1451 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1452 > > ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;...................................
00:00:28 v #1453 > > │
00:00:28 v #1454 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1455 > > ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\..................................
00:00:28 v #1456 > > │
00:00:28 v #1457 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
00:00:28 v #1458 > > .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<<\..................................
00:00:28 v #1459 > > │
00:00:28 v #1460 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #1461 > > .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<....................................
00:00:28 v #1462 > > │
00:00:28 v #1463 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #1464 > > .//<<<<<<<<<<<<<<<<<<...........................................................
00:00:28 v #1465 > > │
00:00:28 v #1466 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #1467 > > ./<<<<<<<<<<<<<<<<..............................................................
00:00:28 v #1468 > > │
00:00:28 v #1469 > > ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............
00:00:28 v #1470 > > ................................................................................
00:00:28 v #1471 > > │
00:00:28 v #1472 > > ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
00:00:28 v #1473 > > ................................................................................
00:00:28 v #1474 > > │
00:00:28 v #1475 > > ........................;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<...............
00:00:28 v #1476 > > ................................................................................
00:00:28 v #1477 > > │
00:00:28 v #1478 > > ........................<<<<<<<<<<<<<<<<<<<<<<..................................
00:00:28 v #1479 > > ................................................................................
00:00:28 v #1480 > > │
00:00:28 v #1481 > > ................................................................................
00:00:28 v #1482 > > ................................................................................
00:00:28 v #1483 > > │
00:00:28 v #1484 > > ................................................................................
00:00:28 v #1485 > > ................................................................................
00:00:28 v #1486 > > │
00:00:28 v #1487 > > ................................................................................
00:00:28 v #1488 > > ................................................................................
00:00:28 v #1489 > > │
00:00:28 v #1490 > > ................................................................................
00:00:28 v #1491 > > ................................................................................
00:00:28 v #1492 > > │
00:00:28 v #1493 > > ................................................................................
00:00:28 v #1494 > > ................................................................................
00:00:28 v #1495 > > │
00:00:28 v #1496 > > ................................................................................
00:00:28 v #1497 > > ................................................................................
00:00:28 v #1498 > > │
00:00:28 v #1499 > > ................................................................................
00:00:28 v #1500 > > ................................................................................
00:00:28 v #1501 > > │
00:00:28 v #1502 > > ................................................................................
00:00:28 v #1503 > > ................................................................................
00:00:28 v #1504 > > │
00:00:28 v #1505 > > ................................................................................
00:00:28 v #1506 > > ................................................................................
00:00:28 v #1507 > > │
00:00:28 v #1508 > > ................................................................................
00:00:28 v #1509 > > ................................................................................
00:00:28 v #1510 > > │
00:00:28 v #1511 > > ................................................................................
00:00:28 v #1512 > > ................................................................................
00:00:28 v #1513 > > │
00:00:28 v #1514 > > ................................................................................
00:00:28 v #1515 > > ................................................................................
00:00:28 v #1516 > > │
00:00:28 v #1517 > > ................................................................................
00:00:28 v #1518 > > ................................................................................
00:00:28 v #1519 > > │
00:00:28 v #1520 > > │
00:00:28 v #1521 > > ................................................................................
00:00:28 v #1522 > > ................................................................................
00:00:28 v #1523 > > │
00:00:28 v #1524 > > ................................................................................
00:00:28 v #1525 > > ................................................................................
00:00:28 v #1526 > > │
00:00:28 v #1527 > > ................................................................................
00:00:28 v #1528 > > ................................................................................
00:00:28 v #1529 > > │
00:00:28 v #1530 > > ................................................................................
00:00:28 v #1531 > > ................................................................................
00:00:28 v #1532 > > │
00:00:28 v #1533 > > ................................................................................
00:00:28 v #1534 > > ................................................................................
00:00:28 v #1535 > > │
00:00:28 v #1536 > > ................................................................................
00:00:28 v #1537 > > ................................................................................
00:00:28 v #1538 > > │
00:00:28 v #1539 > > ................................................................................
00:00:28 v #1540 > > ................................................................................
00:00:28 v #1541 > > │
00:00:28 v #1542 > > ................................................................................
00:00:28 v #1543 > > ................................................................................
00:00:28 v #1544 > > │
00:00:28 v #1545 > > ................................................................................
00:00:28 v #1546 > > ................................................................................
00:00:28 v #1547 > > │
00:00:28 v #1548 > > ................................................................................
00:00:28 v #1549 > > ................................................................................
00:00:28 v #1550 > > │
00:00:28 v #1551 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\....................
00:00:28 v #1552 > > ................................................................................
00:00:28 v #1553 > > │
00:00:28 v #1554 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #1555 > > ................................................................................
00:00:28 v #1556 > > │
00:00:28 v #1557 > > ......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #1558 > > ................................................................................
00:00:28 v #1559 > > │
00:00:28 v #1560 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1561 > > ................................................................................
00:00:28 v #1562 > > │
00:00:28 v #1563 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1564 > > ................................................................................
00:00:28 v #1565 > > │
00:00:28 v #1566 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1567 > > ................................................................................
00:00:28 v #1568 > > │
00:00:28 v #1569 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1570 > > ..;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1571 > > │
00:00:28 v #1572 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1573 > > .>;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1574 > > │
00:00:28 v #1575 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1576 > > >/;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1577 > > │
00:00:28 v #1578 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1579 > > //;;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;...................................
00:00:28 v #1580 > > │
00:00:28 v #1581 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1582 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;...................................
00:00:28 v #1583 > > │
00:00:28 v #1584 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
00:00:28 v #1585 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\..................................
00:00:28 v #1586 > > │
00:00:28 v #1587 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #1588 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;;..................................
00:00:28 v #1589 > > │
00:00:28 v #1590 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #1591 > > .//;;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<..................................
00:00:28 v #1592 > > │
00:00:28 v #1593 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............
00:00:28 v #1594 > > .//;;;;;;;;;;;;;;;;<<<............./<<<<<<<<....................................
00:00:28 v #1595 > > │
00:00:28 v #1596 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
00:00:28 v #1597 > > .///<<<<<<<<<<<<<<<<<...........................................................
00:00:28 v #1598 > > │
00:00:28 v #1599 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..............
00:00:28 v #1600 > > ./<<<<<<<<<<<<<<<<..............................................................
00:00:28 v #1601 > > │
00:00:28 v #1602 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
00:00:28 v #1603 > > ................................................................................
00:00:28 v #1604 > > │
00:00:28 v #1605 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<..............
00:00:28 v #1606 > > ................................................................................
00:00:28 v #1607 > > │
00:00:28 v #1608 > > .......................//;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<...................
00:00:28 v #1609 > > ................................................................................
00:00:28 v #1610 > > │
00:00:28 v #1611 > > .......................//<<<<<<<<<<<<<<<<<<<<<<<<<..............................
00:00:28 v #1612 > > ................................................................................
00:00:28 v #1613 > > │
00:00:28 v #1614 > > ........................<<<<<<<.................................................
00:00:28 v #1615 > > ................................................................................
00:00:28 v #1616 > > │
00:00:28 v #1617 > > ................................................................................
00:00:28 v #1618 > > ................................................................................
00:00:28 v #1619 > > │
00:00:28 v #1620 > > ................................................................................
00:00:28 v #1621 > > ................................................................................
00:00:28 v #1622 > > │
00:00:28 v #1623 > > ................................................................................
00:00:28 v #1624 > > ................................................................................
00:00:28 v #1625 > > │
00:00:28 v #1626 > > ................................................................................
00:00:28 v #1627 > > ................................................................................
00:00:28 v #1628 > > │
00:00:28 v #1629 > > ................................................................................
00:00:28 v #1630 > > ................................................................................
00:00:28 v #1631 > > │
00:00:28 v #1632 > > ................................................................................
00:00:28 v #1633 > > ................................................................................
00:00:28 v #1634 > > │
00:00:28 v #1635 > > ................................................................................
00:00:28 v #1636 > > ................................................................................
00:00:28 v #1637 > > │
00:00:28 v #1638 > > ................................................................................
00:00:28 v #1639 > > ................................................................................
00:00:28 v #1640 > > │
00:00:28 v #1641 > > ................................................................................
00:00:28 v #1642 > > ................................................................................
00:00:28 v #1643 > > │
00:00:28 v #1644 > > ................................................................................
00:00:28 v #1645 > > ................................................................................
00:00:28 v #1646 > > │
00:00:28 v #1647 > > ................................................................................
00:00:28 v #1648 > > ................................................................................
00:00:28 v #1649 > > │
00:00:28 v #1650 > > ................................................................................
00:00:28 v #1651 > > ................................................................................
00:00:28 v #1652 > > │
00:00:28 v #1653 > > │
00:00:28 v #1654 > > ................................................................................
00:00:28 v #1655 > > ................................................................................
00:00:28 v #1656 > > │
00:00:28 v #1657 > > ................................................................................
00:00:28 v #1658 > > ................................................................................
00:00:28 v #1659 > > │
00:00:28 v #1660 > > ................................................................................
00:00:28 v #1661 > > ................................................................................
00:00:28 v #1662 > > │
00:00:28 v #1663 > > ................................................................................
00:00:28 v #1664 > > ................................................................................
00:00:28 v #1665 > > │
00:00:28 v #1666 > > ................................................................................
00:00:28 v #1667 > > ................................................................................
00:00:28 v #1668 > > │
00:00:28 v #1669 > > ................................................................................
00:00:28 v #1670 > > ................................................................................
00:00:28 v #1671 > > │
00:00:28 v #1672 > > ................................................................................
00:00:28 v #1673 > > ................................................................................
00:00:28 v #1674 > > │
00:00:28 v #1675 > > ................................................................................
00:00:28 v #1676 > > ................................................................................
00:00:28 v #1677 > > │
00:00:28 v #1678 > > ................................................................................
00:00:28 v #1679 > > ................................................................................
00:00:28 v #1680 > > │
00:00:28 v #1681 > > ................................................................................
00:00:28 v #1682 > > ................................................................................
00:00:28 v #1683 > > │
00:00:28 v #1684 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #1685 > > ................................................................................
00:00:28 v #1686 > > │
00:00:28 v #1687 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #1688 > > ................................................................................
00:00:28 v #1689 > > │
00:00:28 v #1690 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #1691 > > ................................................................................
00:00:28 v #1692 > > │
00:00:28 v #1693 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #1694 > > ................................................................................
00:00:28 v #1695 > > │
00:00:28 v #1696 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1697 > > ................................................................................
00:00:28 v #1698 > > │
00:00:28 v #1699 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1700 > > ................................................................................
00:00:28 v #1701 > > │
00:00:28 v #1702 > > .....................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1703 > > ..;;;;;;;;;;;;;;;;;.............................................................
00:00:28 v #1704 > > │
00:00:28 v #1705 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1706 > > .>;;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1707 > > │
00:00:28 v #1708 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1709 > > >//;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1710 > > │
00:00:28 v #1711 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1712 > > ///;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;...................................
00:00:28 v #1713 > > │
00:00:28 v #1714 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
00:00:28 v #1715 > > ///;;;;;;;;;;;;;;;;;;.............>/;;;;;;;;;...................................
00:00:28 v #1716 > > │
00:00:28 v #1717 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #1718 > > ///;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;\..................................
00:00:28 v #1719 > > │
00:00:28 v #1720 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............
00:00:28 v #1721 > > ////;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;..................................
00:00:28 v #1722 > > │
00:00:28 v #1723 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
00:00:28 v #1724 > > ////;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<..................................
00:00:28 v #1725 > > │
00:00:28 v #1726 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..............
00:00:28 v #1727 > > ////;;;;;;;<<<<<<<<<<<............./<<<<<<<<....................................
00:00:28 v #1728 > > │
00:00:28 v #1729 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
00:00:28 v #1730 > > .///<<<<<<<<<<<<<<<<<...........................................................
00:00:28 v #1731 > > │
00:00:28 v #1732 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............
00:00:28 v #1733 > > .//<<<<<<<<<<<<<<<..............................................................
00:00:28 v #1734 > > │
00:00:28 v #1735 > > .......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<.............
00:00:28 v #1736 > > .<<<............................................................................
00:00:28 v #1737 > > │
00:00:28 v #1738 > > .......................////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<...............
00:00:28 v #1739 > > ................................................................................
00:00:28 v #1740 > > │
00:00:28 v #1741 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<......................
00:00:28 v #1742 > > ................................................................................
00:00:28 v #1743 > > │
00:00:28 v #1744 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<............................
00:00:28 v #1745 > > ................................................................................
00:00:28 v #1746 > > │
00:00:28 v #1747 > > .......................//<<<<<<<<<<<<<..........................................
00:00:28 v #1748 > > ................................................................................
00:00:28 v #1749 > > │
00:00:28 v #1750 > > ................................................................................
00:00:28 v #1751 > > ................................................................................
00:00:28 v #1752 > > │
00:00:28 v #1753 > > ................................................................................
00:00:28 v #1754 > > ................................................................................
00:00:28 v #1755 > > │
00:00:28 v #1756 > > ................................................................................
00:00:28 v #1757 > > ................................................................................
00:00:28 v #1758 > > │
00:00:28 v #1759 > > ................................................................................
00:00:28 v #1760 > > ................................................................................
00:00:28 v #1761 > > │
00:00:28 v #1762 > > ................................................................................
00:00:28 v #1763 > > ................................................................................
00:00:28 v #1764 > > │
00:00:28 v #1765 > > ................................................................................
00:00:28 v #1766 > > ................................................................................
00:00:28 v #1767 > > │
00:00:28 v #1768 > > ................................................................................
00:00:28 v #1769 > > ................................................................................
00:00:28 v #1770 > > │
00:00:28 v #1771 > > ................................................................................
00:00:28 v #1772 > > ................................................................................
00:00:28 v #1773 > > │
00:00:28 v #1774 > > ................................................................................
00:00:28 v #1775 > > ................................................................................
00:00:28 v #1776 > > │
00:00:28 v #1777 > > ................................................................................
00:00:28 v #1778 > > ................................................................................
00:00:28 v #1779 > > │
00:00:28 v #1780 > > ................................................................................
00:00:28 v #1781 > > ................................................................................
00:00:28 v #1782 > > │
00:00:28 v #1783 > > ................................................................................
00:00:28 v #1784 > > ................................................................................
00:00:28 v #1785 > > │
00:00:28 v #1786 > > │
00:00:28 v #1787 > > ................................................................................
00:00:28 v #1788 > > ................................................................................
00:00:28 v #1789 > > │
00:00:28 v #1790 > > ................................................................................
00:00:28 v #1791 > > ................................................................................
00:00:28 v #1792 > > │
00:00:28 v #1793 > > ................................................................................
00:00:28 v #1794 > > ................................................................................
00:00:28 v #1795 > > │
00:00:28 v #1796 > > ................................................................................
00:00:28 v #1797 > > ................................................................................
00:00:28 v #1798 > > │
00:00:28 v #1799 > > ................................................................................
00:00:28 v #1800 > > ................................................................................
00:00:28 v #1801 > > │
00:00:28 v #1802 > > ................................................................................
00:00:28 v #1803 > > ................................................................................
00:00:28 v #1804 > > │
00:00:28 v #1805 > > ................................................................................
00:00:28 v #1806 > > ................................................................................
00:00:28 v #1807 > > │
00:00:28 v #1808 > > ................................................................................
00:00:28 v #1809 > > ................................................................................
00:00:28 v #1810 > > │
00:00:28 v #1811 > > ................................................................................
00:00:28 v #1812 > > ................................................................................
00:00:28 v #1813 > > │
00:00:28 v #1814 > > ................................................................................
00:00:28 v #1815 > > ................................................................................
00:00:28 v #1816 > > │
00:00:28 v #1817 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
00:00:28 v #1818 > > ................................................................................
00:00:28 v #1819 > > │
00:00:28 v #1820 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #1821 > > ................................................................................
00:00:28 v #1822 > > │
00:00:28 v #1823 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\....................
00:00:28 v #1824 > > ................................................................................
00:00:28 v #1825 > > │
00:00:28 v #1826 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #1827 > > ................................................................................
00:00:28 v #1828 > > │
00:00:28 v #1829 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #1830 > > ................................................................................
00:00:28 v #1831 > > │
00:00:28 v #1832 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1833 > > ................................................................................
00:00:28 v #1834 > > │
00:00:28 v #1835 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1836 > > ..;;;;;;;;;;;;;;;;;.............................................................
00:00:28 v #1837 > > │
00:00:28 v #1838 > > ....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1839 > > .>/;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1840 > > │
00:00:28 v #1841 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1842 > > >//;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1843 > > │
00:00:28 v #1844 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............>
00:00:28 v #1845 > > ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;...................................
00:00:28 v #1846 > > │
00:00:28 v #1847 > > ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
00:00:28 v #1848 > > ////;;;;;;;;;;;;;;;;;.............//;;;;;;;;;...................................
00:00:28 v #1849 > > │
00:00:28 v #1850 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
00:00:28 v #1851 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;..................................
00:00:28 v #1852 > > │
00:00:28 v #1853 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
00:00:28 v #1854 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;..................................
00:00:28 v #1855 > > │
00:00:28 v #1856 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
00:00:28 v #1857 > > ////;;;;;;;;;;;;;;;;;;;............//;<<<<<<<<..................................
00:00:28 v #1858 > > │
00:00:28 v #1859 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............
00:00:28 v #1860 > > /////<<<<<<<<<<<<<<<<<<............/<<<<<<<<....................................
00:00:28 v #1861 > > │
00:00:28 v #1862 > > ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............
00:00:28 v #1863 > > .///<<<<<<<<<<<<<<<<............................................................
00:00:28 v #1864 > > │
00:00:28 v #1865 > > ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<............
00:00:28 v #1866 > > .//<<<<<<<<<<<<<<<..............................................................
00:00:28 v #1867 > > │
00:00:28 v #1868 > > ......................//////;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<.............
00:00:28 v #1869 > > .<<<<<<.........................................................................
00:00:28 v #1870 > > │
00:00:28 v #1871 > > ......................///////;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<..................
00:00:28 v #1872 > > ................................................................................
00:00:28 v #1873 > > │
00:00:28 v #1874 > > .......................//////<<<<<<<<<<<<<<<<<<<<<<<<<<<<.......................
00:00:28 v #1875 > > ................................................................................
00:00:28 v #1876 > > │
00:00:28 v #1877 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<...........................
00:00:28 v #1878 > > ................................................................................
00:00:28 v #1879 > > │
00:00:28 v #1880 > > .......................///<<<<<<<<<<<<<<<<......................................
00:00:28 v #1881 > > ................................................................................
00:00:28 v #1882 > > │
00:00:28 v #1883 > > ......................./<<<<<...................................................
00:00:28 v #1884 > > ................................................................................
00:00:28 v #1885 > > │
00:00:28 v #1886 > > ................................................................................
00:00:28 v #1887 > > ................................................................................
00:00:28 v #1888 > > │
00:00:28 v #1889 > > ................................................................................
00:00:28 v #1890 > > ................................................................................
00:00:28 v #1891 > > │
00:00:28 v #1892 > > ................................................................................
00:00:28 v #1893 > > ................................................................................
00:00:28 v #1894 > > │
00:00:28 v #1895 > > ................................................................................
00:00:28 v #1896 > > ................................................................................
00:00:28 v #1897 > > │
00:00:28 v #1898 > > ................................................................................
00:00:28 v #1899 > > ................................................................................
00:00:28 v #1900 > > │
00:00:28 v #1901 > > ................................................................................
00:00:28 v #1902 > > ................................................................................
00:00:28 v #1903 > > │
00:00:28 v #1904 > > ................................................................................
00:00:28 v #1905 > > ................................................................................
00:00:28 v #1906 > > │
00:00:28 v #1907 > > ................................................................................
00:00:28 v #1908 > > ................................................................................
00:00:28 v #1909 > > │
00:00:28 v #1910 > > ................................................................................
00:00:28 v #1911 > > ................................................................................
00:00:28 v #1912 > > │
00:00:28 v #1913 > > ................................................................................
00:00:28 v #1914 > > ................................................................................
00:00:28 v #1915 > > │
00:00:28 v #1916 > > ................................................................................
00:00:28 v #1917 > > ................................................................................
00:00:28 v #1918 > > │
00:00:28 v #1919 > > │
00:00:28 v #1920 > > ................................................................................
00:00:28 v #1921 > > ................................................................................
00:00:28 v #1922 > > │
00:00:28 v #1923 > > ................................................................................
00:00:28 v #1924 > > ................................................................................
00:00:28 v #1925 > > │
00:00:28 v #1926 > > ................................................................................
00:00:28 v #1927 > > ................................................................................
00:00:28 v #1928 > > │
00:00:28 v #1929 > > ................................................................................
00:00:28 v #1930 > > ................................................................................
00:00:28 v #1931 > > │
00:00:28 v #1932 > > ................................................................................
00:00:28 v #1933 > > ................................................................................
00:00:28 v #1934 > > │
00:00:28 v #1935 > > ................................................................................
00:00:28 v #1936 > > ................................................................................
00:00:28 v #1937 > > │
00:00:28 v #1938 > > ................................................................................
00:00:28 v #1939 > > ................................................................................
00:00:28 v #1940 > > │
00:00:28 v #1941 > > ................................................................................
00:00:28 v #1942 > > ................................................................................
00:00:28 v #1943 > > │
00:00:28 v #1944 > > ................................................................................
00:00:28 v #1945 > > ................................................................................
00:00:28 v #1946 > > │
00:00:28 v #1947 > > ........................;;;;;;..................................................
00:00:28 v #1948 > > ................................................................................
00:00:28 v #1949 > > │
00:00:28 v #1950 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
00:00:28 v #1951 > > ................................................................................
00:00:28 v #1952 > > │
00:00:28 v #1953 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
00:00:28 v #1954 > > ................................................................................
00:00:28 v #1955 > > │
00:00:28 v #1956 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #1957 > > ................................................................................
00:00:28 v #1958 > > │
00:00:28 v #1959 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\....................
00:00:28 v #1960 > > ................................................................................
00:00:28 v #1961 > > │
00:00:28 v #1962 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #1963 > > ................................................................................
00:00:28 v #1964 > > │
00:00:28 v #1965 > > ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #1966 > > ................................................................................
00:00:28 v #1967 > > │
00:00:28 v #1968 > > ....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #1969 > > ..;;;;;;;;;;;;;;;;;.............................................................
00:00:28 v #1970 > > │
00:00:28 v #1971 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #1972 > > .>/;;;;;;;;;;;;;;;;\............................................................
00:00:28 v #1973 > > │
00:00:28 v #1974 > > ...................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #1975 > > >//;;;;;;;;;;;;;;;;;............................................................
00:00:28 v #1976 > > │
00:00:28 v #1977 > > ...................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
00:00:28 v #1978 > > ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;...................................
00:00:28 v #1979 > > │
00:00:28 v #1980 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
00:00:28 v #1981 > > ////;;;;;;;;;;;;;;;;;\............>/;;;;;;;;;\..................................
00:00:28 v #1982 > > │
00:00:28 v #1983 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............
00:00:28 v #1984 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;..................................
00:00:28 v #1985 > > │
00:00:28 v #1986 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............
00:00:28 v #1987 > > /////;;;;;;;;;;;;;;;;;;...........///;;;;;;;<<\.................................
00:00:28 v #1988 > > │
00:00:28 v #1989 > > .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............
00:00:28 v #1990 > > /////;;;;;;;;;;;;;;<<<<............///<<<<<<<<..................................
00:00:28 v #1991 > > │
00:00:28 v #1992 > > .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............
00:00:28 v #1993 > > //////<<<<<<<<<<<<<<<<<............//<<<<<<<....................................
00:00:28 v #1994 > > │
00:00:28 v #1995 > > ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............
00:00:28 v #1996 > > /////<<<<<<<<<<<<<<<............................................................
00:00:28 v #1997 > > │
00:00:28 v #1998 > > ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<............
00:00:28 v #1999 > > .//<<<<<<<<<<<<<<<..............................................................
00:00:28 v #2000 > > │
00:00:28 v #2001 > > ......................////////;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<................
00:00:28 v #2002 > > ./<<<<<<<<......................................................................
00:00:28 v #2003 > > │
00:00:28 v #2004 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<...................
00:00:28 v #2005 > > ................................................................................
00:00:28 v #2006 > > │
00:00:28 v #2007 > > ......................////////<<<<<<<<<<<<<<<<<<<<<<<<<<<.......................
00:00:28 v #2008 > > ................................................................................
00:00:28 v #2009 > > │
00:00:28 v #2010 > > ......................./////<<<<<<<<<<<<<<<<<<<<<<<<<...........................
00:00:28 v #2011 > > ................................................................................
00:00:28 v #2012 > > │
00:00:28 v #2013 > > .......................///<<<<<<<<<<<<<<<<<<<<..................................
00:00:28 v #2014 > > ................................................................................
00:00:28 v #2015 > > │
00:00:28 v #2016 > > .......................//<<<<<<<<<..............................................
00:00:28 v #2017 > > ................................................................................
00:00:28 v #2018 > > │
00:00:28 v #2019 > > ................................................................................
00:00:28 v #2020 > > ................................................................................
00:00:28 v #2021 > > │
00:00:28 v #2022 > > ................................................................................
00:00:28 v #2023 > > ................................................................................
00:00:28 v #2024 > > │
00:00:28 v #2025 > > ................................................................................
00:00:28 v #2026 > > ................................................................................
00:00:28 v #2027 > > │
00:00:28 v #2028 > > ................................................................................
00:00:28 v #2029 > > ................................................................................
00:00:28 v #2030 > > │
00:00:28 v #2031 > > ................................................................................
00:00:28 v #2032 > > ................................................................................
00:00:28 v #2033 > > │
00:00:28 v #2034 > > ................................................................................
00:00:28 v #2035 > > ................................................................................
00:00:28 v #2036 > > │
00:00:28 v #2037 > > ................................................................................
00:00:28 v #2038 > > ................................................................................
00:00:28 v #2039 > > │
00:00:28 v #2040 > > ................................................................................
00:00:28 v #2041 > > ................................................................................
00:00:28 v #2042 > > │
00:00:28 v #2043 > > ................................................................................
00:00:28 v #2044 > > ................................................................................
00:00:28 v #2045 > > │
00:00:28 v #2046 > > ................................................................................
00:00:28 v #2047 > > ................................................................................
00:00:28 v #2048 > > │
00:00:28 v #2049 > > ................................................................................
00:00:28 v #2050 > > ................................................................................
00:00:28 v #2051 > > │
00:00:28 v #2052 > > │
00:00:28 v #2053 > > ................................................................................
00:00:28 v #2054 > > ................................................................................
00:00:28 v #2055 > > │
00:00:28 v #2056 > > ................................................................................
00:00:28 v #2057 > > ................................................................................
00:00:28 v #2058 > > │
00:00:28 v #2059 > > ................................................................................
00:00:28 v #2060 > > ................................................................................
00:00:28 v #2061 > > │
00:00:28 v #2062 > > ................................................................................
00:00:28 v #2063 > > ................................................................................
00:00:28 v #2064 > > │
00:00:28 v #2065 > > ................................................................................
00:00:28 v #2066 > > ................................................................................
00:00:28 v #2067 > > │
00:00:28 v #2068 > > ................................................................................
00:00:28 v #2069 > > ................................................................................
00:00:28 v #2070 > > │
00:00:28 v #2071 > > ................................................................................
00:00:28 v #2072 > > ................................................................................
00:00:28 v #2073 > > │
00:00:28 v #2074 > > ................................................................................
00:00:28 v #2075 > > ................................................................................
00:00:28 v #2076 > > │
00:00:28 v #2077 > > ................................................................................
00:00:28 v #2078 > > ................................................................................
00:00:28 v #2079 > > │
00:00:28 v #2080 > > ........................;;;;;;;;;...............................................
00:00:28 v #2081 > > ................................................................................
00:00:28 v #2082 > > │
00:00:28 v #2083 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................
00:00:28 v #2084 > > ................................................................................
00:00:28 v #2085 > > │
00:00:28 v #2086 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
00:00:28 v #2087 > > ................................................................................
00:00:28 v #2088 > > │
00:00:28 v #2089 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
00:00:28 v #2090 > > ................................................................................
00:00:28 v #2091 > > │
00:00:28 v #2092 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #2093 > > ................................................................................
00:00:28 v #2094 > > │
00:00:28 v #2095 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #2096 > > ................................................................................
00:00:28 v #2097 > > │
00:00:28 v #2098 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #2099 > > ................................................................................
00:00:28 v #2100 > > │
00:00:28 v #2101 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #2102 > > ..;;;;;;;;;;;;;;;;;.............................................................
00:00:28 v #2103 > > │
00:00:28 v #2104 > > ...................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #2105 > > .>/;;;;;;;;;;;;;;;;\............................................................
00:00:28 v #2106 > > │
00:00:28 v #2107 > > .................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
00:00:28 v #2108 > > >///;;;;;;;;;;;;;;;;............................................................
00:00:28 v #2109 > > │
00:00:28 v #2110 > > ..................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............>
00:00:28 v #2111 > > ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;...................................
00:00:28 v #2112 > > │
00:00:28 v #2113 > > ...................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............>
00:00:28 v #2114 > > ////;;;;;;;;;;;;;;;;;;............>//;;;;;;;;\..................................
00:00:28 v #2115 > > │
00:00:28 v #2116 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............
00:00:28 v #2117 > > /////;;;;;;;;;;;;;;;;;\...........///;;;;;;;;;..................................
00:00:28 v #2118 > > │
00:00:28 v #2119 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............
00:00:28 v #2120 > > //////;;;;;;;;;;;;;;;;;...........////;;;<<<<<<.................................
00:00:28 v #2121 > > │
00:00:28 v #2122 > > ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...........
00:00:28 v #2123 > > ///////;;;;;;;<<<<<<<<<<...........///<<<<<<<<..................................
00:00:28 v #2124 > > │
00:00:28 v #2125 > > ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...........
00:00:28 v #2126 > > ///////<<<<<<<<<<<<<<<.............//<<<<<<<....................................
00:00:28 v #2127 > > │
00:00:28 v #2128 > > .....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<...........
00:00:28 v #2129 > > /////<<<<<<<<<<<<<<<............................................................
00:00:28 v #2130 > > │
00:00:28 v #2131 > > .....................///////////;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<..............
00:00:28 v #2132 > > .///<<<<<<<<<<<<<<..............................................................
00:00:28 v #2133 > > │
00:00:28 v #2134 > > .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................
00:00:28 v #2135 > > .//<<<<<<<<<....................................................................
00:00:28 v #2136 > > │
00:00:28 v #2137 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................
00:00:28 v #2138 > > ................................................................................
00:00:28 v #2139 > > │
00:00:28 v #2140 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<.......................
00:00:28 v #2141 > > ................................................................................
00:00:28 v #2142 > > │
00:00:28 v #2143 > > ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<..........................
00:00:28 v #2144 > > ................................................................................
00:00:28 v #2145 > > │
00:00:28 v #2146 > > ......................./////<<<<<<<<<<<<<<<<<<<<................................
00:00:28 v #2147 > > ................................................................................
00:00:28 v #2148 > > │
00:00:28 v #2149 > > .......................///<<<<<<<<<<<<..........................................
00:00:28 v #2150 > > ................................................................................
00:00:28 v #2151 > > │
00:00:28 v #2152 > > ........................<<<<<...................................................
00:00:28 v #2153 > > ................................................................................
00:00:28 v #2154 > > │
00:00:28 v #2155 > > ................................................................................
00:00:28 v #2156 > > ................................................................................
00:00:28 v #2157 > > │
00:00:28 v #2158 > > ................................................................................
00:00:28 v #2159 > > ................................................................................
00:00:28 v #2160 > > │
00:00:28 v #2161 > > ................................................................................
00:00:28 v #2162 > > ................................................................................
00:00:28 v #2163 > > │
00:00:28 v #2164 > > ................................................................................
00:00:28 v #2165 > > ................................................................................
00:00:28 v #2166 > > │
00:00:28 v #2167 > > ................................................................................
00:00:28 v #2168 > > ................................................................................
00:00:28 v #2169 > > │
00:00:28 v #2170 > > ................................................................................
00:00:28 v #2171 > > ................................................................................
00:00:28 v #2172 > > │
00:00:28 v #2173 > > ................................................................................
00:00:28 v #2174 > > ................................................................................
00:00:28 v #2175 > > │
00:00:28 v #2176 > > ................................................................................
00:00:28 v #2177 > > ................................................................................
00:00:28 v #2178 > > │
00:00:28 v #2179 > > ................................................................................
00:00:28 v #2180 > > ................................................................................
00:00:28 v #2181 > > │
00:00:28 v #2182 > > ................................................................................
00:00:28 v #2183 > > ................................................................................
00:00:28 v #2184 > > │
00:00:28 v #2185 > > │
00:00:28 v #2186 > > ................................................................................
00:00:28 v #2187 > > ................................................................................
00:00:28 v #2188 > > │
00:00:28 v #2189 > > ................................................................................
00:00:28 v #2190 > > ................................................................................
00:00:28 v #2191 > > │
00:00:28 v #2192 > > ................................................................................
00:00:28 v #2193 > > ................................................................................
00:00:28 v #2194 > > │
00:00:28 v #2195 > > ................................................................................
00:00:28 v #2196 > > ................................................................................
00:00:28 v #2197 > > │
00:00:28 v #2198 > > ................................................................................
00:00:28 v #2199 > > ................................................................................
00:00:28 v #2200 > > │
00:00:28 v #2201 > > ................................................................................
00:00:28 v #2202 > > ................................................................................
00:00:28 v #2203 > > │
00:00:28 v #2204 > > ................................................................................
00:00:28 v #2205 > > ................................................................................
00:00:28 v #2206 > > │
00:00:28 v #2207 > > ................................................................................
00:00:28 v #2208 > > ................................................................................
00:00:28 v #2209 > > │
00:00:28 v #2210 > > ................................................................................
00:00:28 v #2211 > > ................................................................................
00:00:28 v #2212 > > │
00:00:28 v #2213 > > ........................;;;;;;;;;;..............................................
00:00:28 v #2214 > > ................................................................................
00:00:28 v #2215 > > │
00:00:28 v #2216 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........................
00:00:28 v #2217 > > ................................................................................
00:00:28 v #2218 > > │
00:00:28 v #2219 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................
00:00:28 v #2220 > > ................................................................................
00:00:28 v #2221 > > │
00:00:28 v #2222 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
00:00:28 v #2223 > > ................................................................................
00:00:28 v #2224 > > │
00:00:28 v #2225 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
00:00:28 v #2226 > > ................................................................................
00:00:28 v #2227 > > │
00:00:28 v #2228 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #2229 > > ................................................................................
00:00:28 v #2230 > > │
00:00:28 v #2231 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
00:00:28 v #2232 > > ................................................................................
00:00:28 v #2233 > > │
00:00:28 v #2234 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #2235 > > ../;;;;;;;;;;;;;;;..............................................................
00:00:28 v #2236 > > │
00:00:28 v #2237 > > ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
00:00:28 v #2238 > > .>/;;;;;;;;;;;;;;;;.............................................................
00:00:28 v #2239 > > │
00:00:28 v #2240 > > ..................>//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #2241 > > >///;;;;;;;;;;;;;;;;............................................................
00:00:28 v #2242 > > │
00:00:28 v #2243 > > ..................////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............>
00:00:28 v #2244 > > ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;...................................
00:00:28 v #2245 > > │
00:00:28 v #2246 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............>
00:00:28 v #2247 > > /////;;;;;;;;;;;;;;;;;............>//;;;;;;;;\..................................
00:00:28 v #2248 > > │
00:00:28 v #2249 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...........
00:00:28 v #2250 > > //////;;;;;;;;;;;;;;;;;..........////;;;;;;;;;\.................................
00:00:28 v #2251 > > │
00:00:28 v #2252 > > .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........
00:00:28 v #2253 > > //////;;;;;;;;;;;;;;;;;;..........////;<<<<<<<<.................................
00:00:28 v #2254 > > │
00:00:28 v #2255 > > .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........
00:00:28 v #2256 > > ///////;;<<<<<<<<<<<<<<<...........///<<<<<<<<..................................
00:00:28 v #2257 > > │
00:00:28 v #2258 > > ..................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<...........
00:00:28 v #2259 > > ////////<<<<<<<<<<<<<<.............//<<<<<<<....................................
00:00:28 v #2260 > > │
00:00:28 v #2261 > > ....................//////////////;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<.............
00:00:28 v #2262 > > //////<<<<<<<<<<<<<<............................................................
00:00:28 v #2263 > > │
00:00:28 v #2264 > > ....................//////////////;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<...............
00:00:28 v #2265 > > .////<<<<<<<<<<<<<..............................................................
00:00:28 v #2266 > > │
00:00:28 v #2267 > > ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<..................
00:00:28 v #2268 > > ..<<<<<<<<<<<...................................................................
00:00:28 v #2269 > > │
00:00:28 v #2270 > > .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<.....................
00:00:28 v #2271 > > ................................................................................
00:00:28 v #2272 > > │
00:00:28 v #2273 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<........................
00:00:28 v #2274 > > ................................................................................
00:00:28 v #2275 > > │
00:00:28 v #2276 > > ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<..........................
00:00:28 v #2277 > > ................................................................................
00:00:28 v #2278 > > │
00:00:28 v #2279 > > ......................./////<<<<<<<<<<<<<<<<<<<<<<..............................
00:00:28 v #2280 > > ................................................................................
00:00:28 v #2281 > > │
00:00:28 v #2282 > > .......................////<<<<<<<<<<<<<<.......................................
00:00:28 v #2283 > > ................................................................................
00:00:28 v #2284 > > │
00:00:28 v #2285 > > ......................../<<<<<<<<...............................................
00:00:28 v #2286 > > ................................................................................
00:00:28 v #2287 > > │
00:00:28 v #2288 > > ................................................................................
00:00:28 v #2289 > > ................................................................................
00:00:28 v #2290 > > │
00:00:28 v #2291 > > ................................................................................
00:00:28 v #2292 > > ................................................................................
00:00:28 v #2293 > > │
00:00:28 v #2294 > > ................................................................................
00:00:28 v #2295 > > ................................................................................
00:00:28 v #2296 > > │
00:00:28 v #2297 > > ................................................................................
00:00:28 v #2298 > > ................................................................................
00:00:28 v #2299 > > │
00:00:28 v #2300 > > ................................................................................
00:00:28 v #2301 > > ................................................................................
00:00:28 v #2302 > > │
00:00:28 v #2303 > > ................................................................................
00:00:28 v #2304 > > ................................................................................
00:00:28 v #2305 > > │
00:00:28 v #2306 > > ................................................................................
00:00:28 v #2307 > > ................................................................................
00:00:28 v #2308 > > │
00:00:28 v #2309 > > ................................................................................
00:00:28 v #2310 > > ................................................................................
00:00:28 v #2311 > > │
00:00:28 v #2312 > > ................................................................................
00:00:28 v #2313 > > ................................................................................
00:00:28 v #2314 > > │
00:00:28 v #2315 > > ................................................................................
00:00:28 v #2316 > > ................................................................................
00:00:28 v #2317 > > │
00:00:28 v #2318 > > │
00:00:28 v #2319 > > ................................................................................
00:00:28 v #2320 > > ................................................................................
00:00:28 v #2321 > > │
00:00:28 v #2322 > > ................................................................................
00:00:28 v #2323 > > ................................................................................
00:00:28 v #2324 > > │
00:00:28 v #2325 > > ................................................................................
00:00:28 v #2326 > > ................................................................................
00:00:28 v #2327 > > │
00:00:28 v #2328 > > ................................................................................
00:00:28 v #2329 > > ................................................................................
00:00:28 v #2330 > > │
00:00:28 v #2331 > > ................................................................................
00:00:28 v #2332 > > ................................................................................
00:00:28 v #2333 > > │
00:00:28 v #2334 > > ................................................................................
00:00:28 v #2335 > > ................................................................................
00:00:28 v #2336 > > │
00:00:28 v #2337 > > ................................................................................
00:00:28 v #2338 > > ................................................................................
00:00:28 v #2339 > > │
00:00:28 v #2340 > > ................................................................................
00:00:28 v #2341 > > ................................................................................
00:00:28 v #2342 > > │
00:00:28 v #2343 > > ................................................................................
00:00:28 v #2344 > > ................................................................................
00:00:28 v #2345 > > │
00:00:28 v #2346 > > ........................;;;;;;;;;...............................................
00:00:28 v #2347 > > ................................................................................
00:00:28 v #2348 > > │
00:00:28 v #2349 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........................
00:00:28 v #2350 > > ................................................................................
00:00:28 v #2351 > > │
00:00:28 v #2352 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........................
00:00:28 v #2353 > > ................................................................................
00:00:28 v #2354 > > │
00:00:28 v #2355 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................
00:00:28 v #2356 > > ................................................................................
00:00:28 v #2357 > > │
00:00:28 v #2358 > > .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
00:00:28 v #2359 > > ................................................................................
00:00:28 v #2360 > > │
00:00:28 v #2361 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #2362 > > ................................................................................
00:00:28 v #2363 > > │
00:00:28 v #2364 > > ....................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #2365 > > ................................................................................
00:00:28 v #2366 > > │
00:00:28 v #2367 > > ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #2368 > > ..;;;;;;;;;;;;;;;;..............................................................
00:00:28 v #2369 > > │
00:00:28 v #2370 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #2371 > > .>//;;;;;;;;;;;;;;;.............................................................
00:00:28 v #2372 > > │
00:00:28 v #2373 > > ..................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #2374 > > >///;;;;;;;;;;;;;;;;............................................................
00:00:28 v #2375 > > │
00:00:28 v #2376 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............>
00:00:28 v #2377 > > /////;;;;;;;;;;;;;;;;..............>;;;;;;;;\...................................
00:00:28 v #2378 > > │
00:00:28 v #2379 > > .................>//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........>
00:00:28 v #2380 > > //////;;;;;;;;;;;;;;;;............>//;;;;;;;;\..................................
00:00:28 v #2381 > > │
00:00:28 v #2382 > > .................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........
00:00:28 v #2383 > > //////;;;;;;;;;;;;;;;;;..........>////;;;;;;;;;.................................
00:00:28 v #2384 > > │
00:00:28 v #2385 > > ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........
00:00:28 v #2386 > > ///////;;;;;;;;;;;;<<<<<........../////<<<<<<<<.................................
00:00:28 v #2387 > > │
00:00:28 v #2388 > > ................../////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<.........
00:00:28 v #2389 > > ////////;<<<<<<<<<<<<<<...........////<<<<<<<<..................................
00:00:28 v #2390 > > │
00:00:28 v #2391 > > ...................////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<...........
00:00:28 v #2392 > > ////////<<<<<<<<<<<<<<.............//<<<<<<<....................................
00:00:28 v #2393 > > │
00:00:28 v #2394 > > .................../////////////////;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<..............
00:00:28 v #2395 > > //////<<<<<<<<<<<<<<............................................................
00:00:28 v #2396 > > │
00:00:28 v #2397 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<.................
00:00:28 v #2398 > > .///<<<<<<<<<<<<<<..............................................................
00:00:28 v #2399 > > │
00:00:28 v #2400 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<<<<...................
00:00:28 v #2401 > > ..//<<<<<<<<<<..................................................................
00:00:28 v #2402 > > │
00:00:28 v #2403 > > ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<.....................
00:00:28 v #2404 > > ..<.............................................................................
00:00:28 v #2405 > > │
00:00:28 v #2406 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<........................
00:00:28 v #2407 > > ................................................................................
00:00:28 v #2408 > > │
00:00:28 v #2409 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<..........................
00:00:28 v #2410 > > ................................................................................
00:00:28 v #2411 > > │
00:00:28 v #2412 > > .......................//////<<<<<<<<<<<<<<<<<<<<<<.............................
00:00:28 v #2413 > > ................................................................................
00:00:28 v #2414 > > │
00:00:28 v #2415 > > ........................////<<<<<<<<<<<<<<<.....................................
00:00:28 v #2416 > > ................................................................................
00:00:28 v #2417 > > │
00:00:28 v #2418 > > ........................//<<<<<<<<<<............................................
00:00:28 v #2419 > > ................................................................................
00:00:28 v #2420 > > │
00:00:28 v #2421 > > .........................<<<....................................................
00:00:28 v #2422 > > ................................................................................
00:00:28 v #2423 > > │
00:00:28 v #2424 > > ................................................................................
00:00:28 v #2425 > > ................................................................................
00:00:28 v #2426 > > │
00:00:28 v #2427 > > ................................................................................
00:00:28 v #2428 > > ................................................................................
00:00:28 v #2429 > > │
00:00:28 v #2430 > > ................................................................................
00:00:28 v #2431 > > ................................................................................
00:00:28 v #2432 > > │
00:00:28 v #2433 > > ................................................................................
00:00:28 v #2434 > > ................................................................................
00:00:28 v #2435 > > │
00:00:28 v #2436 > > ................................................................................
00:00:28 v #2437 > > ................................................................................
00:00:28 v #2438 > > │
00:00:28 v #2439 > > ................................................................................
00:00:28 v #2440 > > ................................................................................
00:00:28 v #2441 > > │
00:00:28 v #2442 > > ................................................................................
00:00:28 v #2443 > > ................................................................................
00:00:28 v #2444 > > │
00:00:28 v #2445 > > ................................................................................
00:00:28 v #2446 > > ................................................................................
00:00:28 v #2447 > > │
00:00:28 v #2448 > > ................................................................................
00:00:28 v #2449 > > ................................................................................
00:00:28 v #2450 > > │
00:00:28 v #2451 > > │
00:00:28 v #2452 > > ................................................................................
00:00:28 v #2453 > > ................................................................................
00:00:28 v #2454 > > │
00:00:28 v #2455 > > ................................................................................
00:00:28 v #2456 > > ................................................................................
00:00:28 v #2457 > > │
00:00:28 v #2458 > > ................................................................................
00:00:28 v #2459 > > ................................................................................
00:00:28 v #2460 > > │
00:00:28 v #2461 > > ................................................................................
00:00:28 v #2462 > > ................................................................................
00:00:28 v #2463 > > │
00:00:28 v #2464 > > ................................................................................
00:00:28 v #2465 > > ................................................................................
00:00:28 v #2466 > > │
00:00:28 v #2467 > > ................................................................................
00:00:28 v #2468 > > ................................................................................
00:00:28 v #2469 > > │
00:00:28 v #2470 > > ................................................................................
00:00:28 v #2471 > > ................................................................................
00:00:28 v #2472 > > │
00:00:28 v #2473 > > ................................................................................
00:00:28 v #2474 > > ................................................................................
00:00:28 v #2475 > > │
00:00:28 v #2476 > > ................................................................................
00:00:28 v #2477 > > ................................................................................
00:00:28 v #2478 > > │
00:00:28 v #2479 > > .......................>;;;;;;;;................................................
00:00:28 v #2480 > > ................................................................................
00:00:28 v #2481 > > │
00:00:28 v #2482 > > .......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........................
00:00:28 v #2483 > > ................................................................................
00:00:28 v #2484 > > │
00:00:28 v #2485 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........................
00:00:28 v #2486 > > ................................................................................
00:00:28 v #2487 > > │
00:00:28 v #2488 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........................
00:00:28 v #2489 > > ................................................................................
00:00:28 v #2490 > > │
00:00:28 v #2491 > > .....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
00:00:28 v #2492 > > ................................................................................
00:00:28 v #2493 > > │
00:00:28 v #2494 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.....................
00:00:28 v #2495 > > ................................................................................
00:00:28 v #2496 > > │
00:00:28 v #2497 > > ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #2498 > > ................................................................................
00:00:28 v #2499 > > │
00:00:28 v #2500 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #2501 > > ..;;;;;;;;;;;;;;;\..............................................................
00:00:28 v #2502 > > │
00:00:28 v #2503 > > ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #2504 > > .>/;;;;;;;;;;;;;;;;.............................................................
00:00:28 v #2505 > > │
00:00:28 v #2506 > > ..................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #2507 > > >///;;;;;;;;;;;;;;;;............................................................
00:00:28 v #2508 > > │
00:00:28 v #2509 > > .................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............>
00:00:28 v #2510 > > /////;;;;;;;;;;;;;;;;..............>/;;;;;;;\...................................
00:00:28 v #2511 > > │
00:00:28 v #2512 > > ................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..........>
00:00:28 v #2513 > > //////;;;;;;;;;;;;;;;;\...........>///;;;;;;;\..................................
00:00:28 v #2514 > > │
00:00:28 v #2515 > > ................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........>
00:00:28 v #2516 > > ///////;;;;;;;;;;;;;;;;;.........>////;;;;;;;;;.................................
00:00:28 v #2517 > > │
00:00:28 v #2518 > > .................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<.......
00:00:28 v #2519 > > ////////;;;;;;<<<<<<<<<<.........//////<<<<<<<<.................................
00:00:28 v #2520 > > │
00:00:28 v #2521 > > ................./////////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<.........
00:00:28 v #2522 > > /////////<<<<<<<<<<<<<<...........////<<<<<<<<..................................
00:00:28 v #2523 > > │
00:00:28 v #2524 > > ..................////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<<<............
00:00:28 v #2525 > > ////////<<<<<<<<<<<<<..............//<<<<<<<....................................
00:00:28 v #2526 > > │
00:00:28 v #2527 > > ...................////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<...............
00:00:28 v #2528 > > ///////<<<<<<<<<<<<<............................................................
00:00:28 v #2529 > > │
00:00:28 v #2530 > > ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<<<<..................
00:00:28 v #2531 > > .////<<<<<<<<<<<<<..............................................................
00:00:28 v #2532 > > │
00:00:28 v #2533 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<....................
00:00:28 v #2534 > > ..//<<<<<<<<<<<.................................................................
00:00:28 v #2535 > > │
00:00:28 v #2536 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<......................
00:00:28 v #2537 > > ...<<...........................................................................
00:00:28 v #2538 > > │
00:00:28 v #2539 > > ......................////////////<<<<<<<<<<<<<<<<<<<<<<........................
00:00:28 v #2540 > > ................................................................................
00:00:28 v #2541 > > │
00:00:28 v #2542 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<..........................
00:00:28 v #2543 > > ................................................................................
00:00:28 v #2544 > > │
00:00:28 v #2545 > > .......................///////<<<<<<<<<<<<<<<<<<<<<<............................
00:00:28 v #2546 > > ................................................................................
00:00:28 v #2547 > > │
00:00:28 v #2548 > > ......................../////<<<<<<<<<<<<<<<<...................................
00:00:28 v #2549 > > ................................................................................
00:00:28 v #2550 > > │
00:00:28 v #2551 > > ........................////<<<<<<<<<<..........................................
00:00:28 v #2552 > > ................................................................................
00:00:28 v #2553 > > │
00:00:28 v #2554 > > ........................./<<<<<<................................................
00:00:28 v #2555 > > ................................................................................
00:00:28 v #2556 > > │
00:00:28 v #2557 > > ................................................................................
00:00:28 v #2558 > > ................................................................................
00:00:28 v #2559 > > │
00:00:28 v #2560 > > ................................................................................
00:00:28 v #2561 > > ................................................................................
00:00:28 v #2562 > > │
00:00:28 v #2563 > > ................................................................................
00:00:28 v #2564 > > ................................................................................
00:00:28 v #2565 > > │
00:00:28 v #2566 > > ................................................................................
00:00:28 v #2567 > > ................................................................................
00:00:28 v #2568 > > │
00:00:28 v #2569 > > ................................................................................
00:00:28 v #2570 > > ................................................................................
00:00:28 v #2571 > > │
00:00:28 v #2572 > > ................................................................................
00:00:28 v #2573 > > ................................................................................
00:00:28 v #2574 > > │
00:00:28 v #2575 > > ................................................................................
00:00:28 v #2576 > > ................................................................................
00:00:28 v #2577 > > │
00:00:28 v #2578 > > ................................................................................
00:00:28 v #2579 > > ................................................................................
00:00:28 v #2580 > > │
00:00:28 v #2581 > > ................................................................................
00:00:28 v #2582 > > ................................................................................
00:00:28 v #2583 > > │
00:00:28 v #2584 > > │
00:00:28 v #2585 > > ................................................................................
00:00:28 v #2586 > > ................................................................................
00:00:28 v #2587 > > │
00:00:28 v #2588 > > ................................................................................
00:00:28 v #2589 > > ................................................................................
00:00:28 v #2590 > > │
00:00:28 v #2591 > > ................................................................................
00:00:28 v #2592 > > ................................................................................
00:00:28 v #2593 > > │
00:00:28 v #2594 > > ................................................................................
00:00:28 v #2595 > > ................................................................................
00:00:28 v #2596 > > │
00:00:28 v #2597 > > ................................................................................
00:00:28 v #2598 > > ................................................................................
00:00:28 v #2599 > > │
00:00:28 v #2600 > > ................................................................................
00:00:28 v #2601 > > ................................................................................
00:00:28 v #2602 > > │
00:00:28 v #2603 > > ................................................................................
00:00:28 v #2604 > > ................................................................................
00:00:28 v #2605 > > │
00:00:28 v #2606 > > ................................................................................
00:00:28 v #2607 > > ................................................................................
00:00:28 v #2608 > > │
00:00:28 v #2609 > > ................................................................................
00:00:28 v #2610 > > ................................................................................
00:00:28 v #2611 > > │
00:00:28 v #2612 > > .......................;;;;;;;..................................................
00:00:28 v #2613 > > ................................................................................
00:00:28 v #2614 > > │
00:00:28 v #2615 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;.............................
00:00:28 v #2616 > > ................................................................................
00:00:28 v #2617 > > │
00:00:28 v #2618 > > ......................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;...........................
00:00:28 v #2619 > > ................................................................................
00:00:28 v #2620 > > │
00:00:28 v #2621 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........................
00:00:28 v #2622 > > ................................................................................
00:00:28 v #2623 > > │
00:00:28 v #2624 > > .....................///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................
00:00:28 v #2625 > > ................................................................................
00:00:28 v #2626 > > │
00:00:28 v #2627 > > ....................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
00:00:28 v #2628 > > ................................................................................
00:00:28 v #2629 > > │
00:00:28 v #2630 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
00:00:28 v #2631 > > ................................................................................
00:00:28 v #2632 > > │
00:00:28 v #2633 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #2634 > > ../;;;;;;;;;;;;;;...............................................................
00:00:28 v #2635 > > │
00:00:28 v #2636 > > ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #2637 > > .>/;;;;;;;;;;;;;;;;.............................................................
00:00:28 v #2638 > > │
00:00:28 v #2639 > > ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
00:00:28 v #2640 > > >///;;;;;;;;;;;;;;;;............................................................
00:00:28 v #2641 > > │
00:00:28 v #2642 > > .................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............>
00:00:28 v #2643 > > ///////;;;;;;;;;;;;;;..............>/;;;;;;;....................................
00:00:28 v #2644 > > │
00:00:28 v #2645 > > ................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........>
00:00:28 v #2646 > > ////////;;;;;;;;;;;;;;;...........>///;;;;;;;;..................................
00:00:28 v #2647 > > │
00:00:28 v #2648 > > ................/////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<.......>
00:00:28 v #2649 > > /////////;;;;;;;;;;;;;;<.........>////;;;;;;;;<.................................
00:00:28 v #2650 > > │
00:00:28 v #2651 > > ...............////////////////////////;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<........
00:00:28 v #2652 > > /////////;<<<<<<<<<<<<<<.........//////;<<<<<<<.................................
00:00:28 v #2653 > > │
00:00:28 v #2654 > > ................////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<...........
00:00:28 v #2655 > > //////////<<<<<<<<<<<<<.........../////<<<<<<<..................................
00:00:28 v #2656 > > │
00:00:28 v #2657 > > .................////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<.............
00:00:28 v #2658 > > /////////<<<<<<<<<<<<..............//<<<<<<<....................................
00:00:28 v #2659 > > │
00:00:28 v #2660 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<<<<................
00:00:28 v #2661 > > ////////<<<<<<<<<<<<............................................................
00:00:28 v #2662 > > │
00:00:28 v #2663 > > ...................///////////////////<<<<<<<<<<<<<<<<<<<<<<<<..................
00:00:28 v #2664 > > ./////<<<<<<<<<<<<..............................................................
00:00:28 v #2665 > > │
00:00:28 v #2666 > > ..................../////////////////<<<<<<<<<<<<<<<<<<<<<<<....................
00:00:28 v #2667 > > ..///<<<<<<<<<<.................................................................
00:00:28 v #2668 > > │
00:00:28 v #2669 > > .....................///////////////<<<<<<<<<<<<<<<<<<<<<<......................
00:00:28 v #2670 > > .../<<<.........................................................................
00:00:28 v #2671 > > │
00:00:28 v #2672 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<........................
00:00:28 v #2673 > > ................................................................................
00:00:28 v #2674 > > │
00:00:28 v #2675 > > ......................///////////<<<<<<<<<<<<<<<<<<<<<..........................
00:00:28 v #2676 > > ................................................................................
00:00:28 v #2677 > > │
00:00:28 v #2678 > > ......................./////////<<<<<<<<<<<<<<<<<<<<............................
00:00:28 v #2679 > > ................................................................................
00:00:28 v #2680 > > │
00:00:28 v #2681 > > ........................///////<<<<<<<<<<<<<<<..................................
00:00:28 v #2682 > > ................................................................................
00:00:28 v #2683 > > │
00:00:28 v #2684 > > .........................////<<<<<<<<<<<........................................
00:00:28 v #2685 > > ................................................................................
00:00:28 v #2686 > > │
00:00:28 v #2687 > > ..........................//<<<<<<<.............................................
00:00:28 v #2688 > > ................................................................................
00:00:28 v #2689 > > │
00:00:28 v #2690 > > ...........................<<...................................................
00:00:28 v #2691 > > ................................................................................
00:00:28 v #2692 > > │
00:00:28 v #2693 > > ................................................................................
00:00:28 v #2694 > > ................................................................................
00:00:28 v #2695 > > │
00:00:28 v #2696 > > ................................................................................
00:00:28 v #2697 > > ................................................................................
00:00:28 v #2698 > > │
00:00:28 v #2699 > > ................................................................................
00:00:28 v #2700 > > ................................................................................
00:00:28 v #2701 > > │
00:00:28 v #2702 > > ................................................................................
00:00:28 v #2703 > > ................................................................................
00:00:28 v #2704 > > │
00:00:28 v #2705 > > ................................................................................
00:00:28 v #2706 > > ................................................................................
00:00:28 v #2707 > > │
00:00:28 v #2708 > > ................................................................................
00:00:28 v #2709 > > ................................................................................
00:00:28 v #2710 > > │
00:00:28 v #2711 > > ................................................................................
00:00:28 v #2712 > > ................................................................................
00:00:28 v #2713 > > │
00:00:28 v #2714 > > ................................................................................
00:00:28 v #2715 > > ................................................................................
00:00:28 v #2716 > > │
00:00:28 v #2717 > > │
00:00:28 v #2718 > > ................................................................................
00:00:28 v #2719 > > ................................................................................
00:00:28 v #2720 > > │
00:00:28 v #2721 > > ................................................................................
00:00:28 v #2722 > > ................................................................................
00:00:28 v #2723 > > │
00:00:28 v #2724 > > ................................................................................
00:00:28 v #2725 > > ................................................................................
00:00:28 v #2726 > > │
00:00:28 v #2727 > > ................................................................................
00:00:28 v #2728 > > ................................................................................
00:00:28 v #2729 > > │
00:00:28 v #2730 > > ................................................................................
00:00:28 v #2731 > > ................................................................................
00:00:28 v #2732 > > │
00:00:28 v #2733 > > ................................................................................
00:00:28 v #2734 > > ................................................................................
00:00:28 v #2735 > > │
00:00:28 v #2736 > > ................................................................................
00:00:28 v #2737 > > ................................................................................
00:00:28 v #2738 > > │
00:00:28 v #2739 > > ................................................................................
00:00:28 v #2740 > > ................................................................................
00:00:28 v #2741 > > │
00:00:28 v #2742 > > ................................................................................
00:00:28 v #2743 > > ................................................................................
00:00:28 v #2744 > > │
00:00:28 v #2745 > > .......................;;;;.....................................................
00:00:28 v #2746 > > ................................................................................
00:00:28 v #2747 > > │
00:00:28 v #2748 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;................................
00:00:28 v #2749 > > ................................................................................
00:00:28 v #2750 > > │
00:00:28 v #2751 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;.............................
00:00:28 v #2752 > > ................................................................................
00:00:28 v #2753 > > │
00:00:28 v #2754 > > .....................>////;/;;;;;;;;;;;;;;;;;;;;;;;;;...........................
00:00:28 v #2755 > > ................................................................................
00:00:28 v #2756 > > │
00:00:28 v #2757 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;.........................
00:00:28 v #2758 > > ................................................................................
00:00:28 v #2759 > > │
00:00:28 v #2760 > > ....................>////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
00:00:28 v #2761 > > ................................................................................
00:00:28 v #2762 > > │
00:00:28 v #2763 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\....................
00:00:28 v #2764 > > ................................................................................
00:00:28 v #2765 > > │
00:00:28 v #2766 > > ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
00:00:28 v #2767 > > ..;;;;;;;;;;;;;;\...............................................................
00:00:28 v #2768 > > │
00:00:28 v #2769 > > ..................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
00:00:28 v #2770 > > .>/;;;;;;;;;;;;;;;..............................................................
00:00:28 v #2771 > > │
00:00:28 v #2772 > > .................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..............
00:00:28 v #2773 > > >///;/;;;;;;;;;;;;;;............................................................
00:00:28 v #2774 > > │
00:00:28 v #2775 > > ................./////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........>
00:00:28 v #2776 > > //////;;;;;;;;;;;;;;;;.............>/;;;;;;;....................................
00:00:28 v #2777 > > │
00:00:28 v #2778 > > ................>//////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........>
00:00:28 v #2779 > > ///////;/;;;;;;;;;;;;;;...........>///;;;;;;;;..................................
00:00:28 v #2780 > > │
00:00:28 v #2781 > > ...............>////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<.......>
00:00:28 v #2782 > > /////////;;;;;;;;;<<<<<<.........>////;;;;;;<<<.................................
00:00:28 v #2783 > > │
00:00:28 v #2784 > > ...............>//////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<.........
00:00:28 v #2785 > > //////////;<<<<<<<<<<<<<.........///////<<<<<<<.................................
00:00:28 v #2786 > > │
00:00:28 v #2787 > > ...............///////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<...........
00:00:28 v #2788 > > //////////<<<<<<<<<<<<............/////<<<<<<...................................
00:00:28 v #2789 > > │
00:00:28 v #2790 > > ................//////////////////////////<<<<<<<<<<<<<<<<<<<<<<...............
00:00:28 v #2791 > > /////////<<<<<<<<<<<<..............///<<<<<<....................................
00:00:28 v #2792 > > │
00:00:28 v #2793 > > .................///////////////////////<<<<<<<<<<<<<<<<<<<<<<<.................
00:00:28 v #2794 > > ///////<<<<<<<<<<<<..................<..........................................
00:00:28 v #2795 > > │
00:00:28 v #2796 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<...................
00:00:28 v #2797 > > .//////<<<<<<<<<<<..............................................................
00:00:28 v #2798 > > │
00:00:28 v #2799 > > ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<.....................
00:00:28 v #2800 > > ...//<<<<<<<<<<.................................................................
00:00:28 v #2801 > > │
00:00:28 v #2802 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<......................
00:00:28 v #2803 > > ..../<<<........................................................................
00:00:28 v #2804 > > │
00:00:28 v #2805 > > .....................///////////////<<<<<<<<<<<<<<<<<<<<........................
00:00:28 v #2806 > > ................................................................................
00:00:28 v #2807 > > │
00:00:28 v #2808 > > ....................../////////////<<<<<<<<<<<<<<<<<<<..........................
00:00:28 v #2809 > > ................................................................................
00:00:28 v #2810 > > │
00:00:28 v #2811 > > .......................//////////<<<<<<<<<<<<<<<<<<<<...........................
00:00:28 v #2812 > > ................................................................................
00:00:28 v #2813 > > │
00:00:28 v #2814 > > ........................////////<<<<<<<<<<<<<<<.................................
00:00:28 v #2815 > > ................................................................................
00:00:28 v #2816 > > │
00:00:28 v #2817 > > ..........................////<<<<<<<<<<<<......................................
00:00:28 v #2818 > > ................................................................................
00:00:28 v #2819 > > │
00:00:28 v #2820 > > ..........................////<<<<<<<...........................................
00:00:28 v #2821 > > ................................................................................
00:00:28 v #2822 > > │
00:00:28 v #2823 > > ............................<<<<................................................
00:00:28 v #2824 > > ................................................................................
00:00:28 v #2825 > > │
00:00:28 v #2826 > > ................................................................................
00:00:28 v #2827 > > ................................................................................
00:00:28 v #2828 > > │
00:00:28 v #2829 > > ................................................................................
00:00:28 v #2830 > > ................................................................................
00:00:28 v #2831 > > │
00:00:28 v #2832 > > ................................................................................
00:00:28 v #2833 > > ................................................................................
00:00:28 v #2834 > > │
00:00:28 v #2835 > > ................................................................................
00:00:28 v #2836 > > ................................................................................
00:00:28 v #2837 > > │
00:00:28 v #2838 > > ................................................................................
00:00:28 v #2839 > > ................................................................................
00:00:28 v #2840 > > │
00:00:28 v #2841 > > ................................................................................
00:00:28 v #2842 > > ................................................................................
00:00:28 v #2843 > > │
00:00:28 v #2844 > > ................................................................................
00:00:28 v #2845 > > ................................................................................
00:00:28 v #2846 > > │
00:00:28 v #2847 > > ................................................................................
00:00:28 v #2848 > > ................................................................................
00:00:28 v #2849 > > │
00:00:28 v #2850 > > │
00:00:28 v #2851 > > ................................................................................
00:00:28 v #2852 > > ................................................................................
00:00:28 v #2853 > > │
00:00:28 v #2854 > > ................................................................................
00:00:28 v #2855 > > ................................................................................
00:00:28 v #2856 > > │
00:00:28 v #2857 > > ................................................................................
00:00:28 v #2858 > > ................................................................................
00:00:28 v #2859 > > │
00:00:28 v #2860 > > ................................................................................
00:00:28 v #2861 > > ................................................................................
00:00:28 v #2862 > > │
00:00:28 v #2863 > > ................................................................................
00:00:28 v #2864 > > ................................................................................
00:00:28 v #2865 > > │
00:00:28 v #2866 > > ................................................................................
00:00:28 v #2867 > > ................................................................................
00:00:28 v #2868 > > │
00:00:28 v #2869 > > ................................................................................
00:00:28 v #2870 > > ................................................................................
00:00:28 v #2871 > > │
00:00:28 v #2872 > > ................................................................................
00:00:28 v #2873 > > ................................................................................
00:00:28 v #2874 > > │
00:00:28 v #2875 > > ................................................................................
00:00:28 v #2876 > > ................................................................................
00:00:28 v #2877 > > │
00:00:28 v #2878 > > .......................;;.......................................................
00:00:28 v #2879 > > ................................................................................
00:00:28 v #2880 > > │
00:00:28 v #2881 > > ......................>;;;;;;;;;;;;;;;;;;;;.....................................
00:00:28 v #2882 > > ................................................................................
00:00:28 v #2883 > > │
00:00:28 v #2884 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;..............................
00:00:28 v #2885 > > ................................................................................
00:00:28 v #2886 > > │
00:00:28 v #2887 > > .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;............................
00:00:28 v #2888 > > ................................................................................
00:00:28 v #2889 > > │
00:00:28 v #2890 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;\.........................
00:00:28 v #2891 > > ................................................................................
00:00:28 v #2892 > > │
00:00:28 v #2893 > > ....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
00:00:28 v #2894 > > ................................................................................
00:00:28 v #2895 > > │
00:00:28 v #2896 > > ...................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #2897 > > ................................................................................
00:00:28 v #2898 > > │
00:00:28 v #2899 > > ..................>///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
00:00:28 v #2900 > > .>/;;;;;;;;;;;;;................................................................
00:00:28 v #2901 > > │
00:00:28 v #2902 > > ..................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #2903 > > >//;;;;;;;;;;;;;;;..............................................................
00:00:28 v #2904 > > │
00:00:28 v #2905 > > .................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
00:00:28 v #2906 > > >////;;;;;;;;;;;;;;;............................................................
00:00:28 v #2907 > > │
00:00:28 v #2908 > > .................///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........>
00:00:28 v #2909 > > ///////;;;;;;;;;;;;;;;.............>/;;;;;;;....................................
00:00:28 v #2910 > > │
00:00:28 v #2911 > > ................>/////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<.........>
00:00:28 v #2912 > > ////////;;;;;;;;;;;;;;;;..........>//;;;;;;;;;..................................
00:00:28 v #2913 > > │
00:00:28 v #2914 > > ...............>/////////////////////////////;;;<<<<<<<<<<<<<<<<<<<<.........>
00:00:28 v #2915 > > //////////;;;<<<<<<<<<<<.........>/////;;;<<<<<.................................
00:00:28 v #2916 > > │
00:00:28 v #2917 > > ...............//////////////////////////////<<<<<<<<<<<<<<<<<<<<<<.........
00:00:28 v #2918 > > ////////////<<<<<<<<<<<..........///////<<<<<<<.................................
00:00:28 v #2919 > > │
00:00:28 v #2920 > > ..............>////////////////////////////<<<<<<<<<<<<<<<<<<<<<<............
00:00:28 v #2921 > > ///////////<<<<<<<<<<<............/////<<<<<<...................................
00:00:28 v #2922 > > │
00:00:28 v #2923 > > ...............////////////////////////////<<<<<<<<<<<<<<<<<<<<...............
00:00:28 v #2924 > > //////////<<<<<<<<<<<..............///<<<<<<....................................
00:00:28 v #2925 > > │
00:00:28 v #2926 > > ................/////////////////////////<<<<<<<<<<<<<<<<<<<<<..................
00:00:28 v #2927 > > ////////<<<<<<<<<<<..................<..........................................
00:00:28 v #2928 > > │
00:00:28 v #2929 > > .................///////////////////////<<<<<<<<<<<<<<<<<<<<<...................
00:00:28 v #2930 > > .//////<<<<<<<<<<<..............................................................
00:00:28 v #2931 > > │
00:00:28 v #2932 > > ...................////////////////////<<<<<<<<<<<<<<<<<<<<.....................
00:00:28 v #2933 > > ...///<<<<<<<<<<................................................................
00:00:28 v #2934 > > │
00:00:28 v #2935 > > ....................//////////////////<<<<<<<<<<<<<<<<<<<<......................
00:00:28 v #2936 > > ..../<<<<.......................................................................
00:00:28 v #2937 > > │
00:00:28 v #2938 > > .....................////////////////<<<<<<<<<<<<<<<<<<<........................
00:00:28 v #2939 > > ................................................................................
00:00:28 v #2940 > > │
00:00:28 v #2941 > > ......................//////////////<<<<<<<<<<<<<<<<<<..........................
00:00:28 v #2942 > > ................................................................................
00:00:28 v #2943 > > │
00:00:28 v #2944 > > ........................///////////<<<<<<<<<<<<<<<<<<...........................
00:00:28 v #2945 > > ................................................................................
00:00:28 v #2946 > > │
00:00:28 v #2947 > > .........................////////<<<<<<<<<<<<<<<................................
00:00:28 v #2948 > > ................................................................................
00:00:28 v #2949 > > │
00:00:28 v #2950 > > ..........................//////<<<<<<<<<<<.....................................
00:00:28 v #2951 > > ................................................................................
00:00:28 v #2952 > > │
00:00:28 v #2953 > > ...........................////<<<<<<<<.........................................
00:00:28 v #2954 > > ................................................................................
00:00:28 v #2955 > > │
00:00:28 v #2956 > > ............................//<<<<..............................................
00:00:28 v #2957 > > ................................................................................
00:00:28 v #2958 > > │
00:00:28 v #2959 > > ................................................................................
00:00:28 v #2960 > > ................................................................................
00:00:28 v #2961 > > │
00:00:28 v #2962 > > ................................................................................
00:00:28 v #2963 > > ................................................................................
00:00:28 v #2964 > > │
00:00:28 v #2965 > > ................................................................................
00:00:28 v #2966 > > ................................................................................
00:00:28 v #2967 > > │
00:00:28 v #2968 > > ................................................................................
00:00:28 v #2969 > > ................................................................................
00:00:28 v #2970 > > │
00:00:28 v #2971 > > ................................................................................
00:00:28 v #2972 > > ................................................................................
00:00:28 v #2973 > > │
00:00:28 v #2974 > > ................................................................................
00:00:28 v #2975 > > ................................................................................
00:00:28 v #2976 > > │
00:00:28 v #2977 > > ................................................................................
00:00:28 v #2978 > > ................................................................................
00:00:28 v #2979 > > │
00:00:28 v #2980 > > ................................................................................
00:00:28 v #2981 > > ................................................................................
00:00:28 v #2982 > > │
00:00:28 v #2983 > > │
00:00:28 v #2984 > > ................................................................................
00:00:28 v #2985 > > ................................................................................
00:00:28 v #2986 > > │
00:00:28 v #2987 > > ................................................................................
00:00:28 v #2988 > > ................................................................................
00:00:28 v #2989 > > │
00:00:28 v #2990 > > ................................................................................
00:00:28 v #2991 > > ................................................................................
00:00:28 v #2992 > > │
00:00:28 v #2993 > > ................................................................................
00:00:28 v #2994 > > ................................................................................
00:00:28 v #2995 > > │
00:00:28 v #2996 > > ................................................................................
00:00:28 v #2997 > > ................................................................................
00:00:28 v #2998 > > │
00:00:28 v #2999 > > ................................................................................
00:00:28 v #3000 > > ................................................................................
00:00:28 v #3001 > > │
00:00:28 v #3002 > > ................................................................................
00:00:28 v #3003 > > ................................................................................
00:00:28 v #3004 > > │
00:00:28 v #3005 > > ................................................................................
00:00:28 v #3006 > > ................................................................................
00:00:28 v #3007 > > │
00:00:28 v #3008 > > ................................................................................
00:00:28 v #3009 > > ................................................................................
00:00:28 v #3010 > > │
00:00:28 v #3011 > > ................................................................................
00:00:28 v #3012 > > ................................................................................
00:00:28 v #3013 > > │
00:00:28 v #3014 > > ....................../;;;;;;;;;;;;;;;;.........................................
00:00:28 v #3015 > > ................................................................................
00:00:28 v #3016 > > │
00:00:28 v #3017 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;................................
00:00:28 v #3018 > > ................................................................................
00:00:28 v #3019 > > │
00:00:28 v #3020 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;.............................
00:00:28 v #3021 > > ................................................................................
00:00:28 v #3022 > > │
00:00:28 v #3023 > > ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;...........................
00:00:28 v #3024 > > ................................................................................
00:00:28 v #3025 > > │
00:00:28 v #3026 > > ...................>///////////;/;;;;;;;;;;;;;;;;;;;;;;;........................
00:00:28 v #3027 > > ................................................................................
00:00:28 v #3028 > > │
00:00:28 v #3029 > > ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #3030 > > ................................................................................
00:00:28 v #3031 > > │
00:00:28 v #3032 > > ..................>/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #3033 > > .>;;;;;;;;;;;;;.................................................................
00:00:28 v #3034 > > │
00:00:28 v #3035 > > ..................////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #3036 > > >//;/;;;;;;;;;;;;...............................................................
00:00:28 v #3037 > > │
00:00:28 v #3038 > > .................>//////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;\............
00:00:28 v #3039 > > //////;;;;;;;;;;;;;;............................................................
00:00:28 v #3040 > > │
00:00:28 v #3041 > > ................>//////////////////////////;;;;;;;;;;;;;;;;;;;<<<<<<<..........>
00:00:28 v #3042 > > ///////;;;;;;;;;;;;;;;.............>/;;;;;;;....................................
00:00:28 v #3043 > > │
00:00:28 v #3044 > > ................/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<<..........>
00:00:28 v #3045 > > ///////////;;;;;;;;;;;<<..........>//;;;;;;;;;..................................
00:00:28 v #3046 > > │
00:00:28 v #3047 > > ...............>//////////////////////////////<<<<<<<<<<<<<<<<<<<<<..........>
00:00:28 v #3048 > > ///////////;<<<<<<<<<<<<.........>/////;;<<<<<<.................................
00:00:28 v #3049 > > │
00:00:28 v #3050 > > ...............///////////////////////////////<<<<<<<<<<<<<<<<<<<............
00:00:28 v #3051 > > ////////////<<<<<<<<<<<..........///////<<<<<<..................................
00:00:28 v #3052 > > │
00:00:28 v #3053 > > ..............>//////////////////////////////<<<<<<<<<<<<<<<<<<<............
00:00:28 v #3054 > > ///////////<<<<<<<<<<<............/////<<<<<<...................................
00:00:28 v #3055 > > │
00:00:28 v #3056 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<<<...............
00:00:28 v #3057 > > //////////<<<<<<<<<<<...............///<<<<<....................................
00:00:28 v #3058 > > │
00:00:28 v #3059 > > ...............///////////////////////////<<<<<<<<<<<<<<<<<<<...................
00:00:28 v #3060 > > /////////<<<<<<<<<<................../..........................................
00:00:28 v #3061 > > │
00:00:28 v #3062 > > ................//////////////////////////<<<<<<<<<<<<<<<<<<....................
00:00:28 v #3063 > > .///////<<<<<<<<<<..............................................................
00:00:28 v #3064 > > │
00:00:28 v #3065 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<.....................
00:00:28 v #3066 > > ...////<<<<<<<<<................................................................
00:00:28 v #3067 > > │
00:00:28 v #3068 > > ....................///////////////////<<<<<<<<<<<<<<<<<<.......................
00:00:28 v #3069 > > ...../<<<.......................................................................
00:00:28 v #3070 > > │
00:00:28 v #3071 > > ...................../////////////////<<<<<<<<<<<<<<<<<<........................
00:00:28 v #3072 > > ................................................................................
00:00:28 v #3073 > > │
00:00:28 v #3074 > > ......................///////////////<<<<<<<<<<<<<<<<<<.........................
00:00:28 v #3075 > > ................................................................................
00:00:28 v #3076 > > │
00:00:28 v #3077 > > ........................////////////<<<<<<<<<<<<<<<<<...........................
00:00:28 v #3078 > > ................................................................................
00:00:28 v #3079 > > │
00:00:28 v #3080 > > .........................//////////<<<<<<<<<<<<<<...............................
00:00:28 v #3081 > > ................................................................................
00:00:28 v #3082 > > │
00:00:28 v #3083 > > ...........................///////<<<<<<<<<<<...................................
00:00:28 v #3084 > > ................................................................................
00:00:28 v #3085 > > │
00:00:28 v #3086 > > ............................/////<<<<<<<........................................
00:00:28 v #3087 > > ................................................................................
00:00:28 v #3088 > > │
00:00:28 v #3089 > > ..............................//<<<<............................................
00:00:28 v #3090 > > ................................................................................
00:00:28 v #3091 > > │
00:00:28 v #3092 > > ................................................................................
00:00:28 v #3093 > > ................................................................................
00:00:28 v #3094 > > │
00:00:28 v #3095 > > ................................................................................
00:00:28 v #3096 > > ................................................................................
00:00:28 v #3097 > > │
00:00:28 v #3098 > > ................................................................................
00:00:28 v #3099 > > ................................................................................
00:00:28 v #3100 > > │
00:00:28 v #3101 > > ................................................................................
00:00:28 v #3102 > > ................................................................................
00:00:28 v #3103 > > │
00:00:28 v #3104 > > ................................................................................
00:00:28 v #3105 > > ................................................................................
00:00:28 v #3106 > > │
00:00:28 v #3107 > > ................................................................................
00:00:28 v #3108 > > ................................................................................
00:00:28 v #3109 > > │
00:00:28 v #3110 > > ................................................................................
00:00:28 v #3111 > > ................................................................................
00:00:28 v #3112 > > │
00:00:28 v #3113 > > ................................................................................
00:00:28 v #3114 > > ................................................................................
00:00:28 v #3115 > > │
00:00:28 v #3116 > > │
00:00:28 v #3117 > > ................................................................................
00:00:28 v #3118 > > ................................................................................
00:00:28 v #3119 > > │
00:00:28 v #3120 > > ................................................................................
00:00:28 v #3121 > > ................................................................................
00:00:28 v #3122 > > │
00:00:28 v #3123 > > ................................................................................
00:00:28 v #3124 > > ................................................................................
00:00:28 v #3125 > > │
00:00:28 v #3126 > > ................................................................................
00:00:28 v #3127 > > ................................................................................
00:00:28 v #3128 > > │
00:00:28 v #3129 > > ................................................................................
00:00:28 v #3130 > > ................................................................................
00:00:28 v #3131 > > │
00:00:28 v #3132 > > ................................................................................
00:00:28 v #3133 > > ................................................................................
00:00:28 v #3134 > > │
00:00:28 v #3135 > > ................................................................................
00:00:28 v #3136 > > ................................................................................
00:00:28 v #3137 > > │
00:00:28 v #3138 > > ................................................................................
00:00:28 v #3139 > > ................................................................................
00:00:28 v #3140 > > │
00:00:28 v #3141 > > ................................................................................
00:00:28 v #3142 > > ................................................................................
00:00:28 v #3143 > > │
00:00:28 v #3144 > > ................................................................................
00:00:28 v #3145 > > ................................................................................
00:00:28 v #3146 > > │
00:00:28 v #3147 > > .....................>;;;;;;;;;;;;..............................................
00:00:28 v #3148 > > ................................................................................
00:00:28 v #3149 > > │
00:00:28 v #3150 > > .....................///;;;;;;;;;;;;;;;;;;;;;;..................................
00:00:28 v #3151 > > ................................................................................
00:00:28 v #3152 > > │
00:00:28 v #3153 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;...............................
00:00:28 v #3154 > > ................................................................................
00:00:28 v #3155 > > │
00:00:28 v #3156 > > ..................../////////;/;;;;;;;;;;;;;;;;;;;;;\...........................
00:00:28 v #3157 > > ................................................................................
00:00:28 v #3158 > > │
00:00:28 v #3159 > > ...................>/////////////;;;;;;;;;;;;;;;;;;;;;;\........................
00:00:28 v #3160 > > ................................................................................
00:00:28 v #3161 > > │
00:00:28 v #3162 > > ...................////////////////;/;;;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #3163 > > ................................................................................
00:00:28 v #3164 > > │
00:00:28 v #3165 > > ..................>///////////////////;/;;;;;;;;;;;;;;;;;;;;;;..................
00:00:28 v #3166 > > .;;;;;;;;;;;;;..................................................................
00:00:28 v #3167 > > │
00:00:28 v #3168 > > .................>///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;\..............
00:00:28 v #3169 > > >///;;;;;;;;;;;;;...............................................................
00:00:28 v #3170 > > │
00:00:28 v #3171 > > .................//////////////////////////;;;;;;;;;;;;;;;;;;;;;;<<<............
00:00:28 v #3172 > > /////;;;;;;;;;;;;;;;............................................................
00:00:28 v #3173 > > │
00:00:28 v #3174 > > ................>/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<...........>
00:00:28 v #3175 > > ////////;/;;;;;;;;;;;;;............>/;;;;;;;....................................
00:00:28 v #3176 > > │
00:00:28 v #3177 > > ................////////////////////////////////<<<<<<<<<<<<<<<<<<<...........>
00:00:28 v #3178 > > //////////;;;;;;;<<<<<<<..........>//;;;;;;;;;..................................
00:00:28 v #3179 > > │
00:00:28 v #3180 > > ...............>///////////////////////////////<<<<<<<<<<<<<<<<<<<...........>
00:00:28 v #3181 > > /////////////<<<<<<<<<<..........>///////<<<<<<.................................
00:00:28 v #3182 > > │
00:00:28 v #3183 > > ...............///////////////////////////////<<<<<<<<<<<<<<<<<<.............
00:00:28 v #3184 > > ////////////<<<<<<<<<<...........////////<<<<<..................................
00:00:28 v #3185 > > │
00:00:28 v #3186 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<<<.............>
00:00:28 v #3187 > > ///////////<<<<<<<<<<............///////<<<<<...................................
00:00:28 v #3188 > > │
00:00:28 v #3189 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<<...............
00:00:28 v #3190 > > ///////////<<<<<<<<<................///<<<<<....................................
00:00:28 v #3191 > > │
00:00:28 v #3192 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<..................
00:00:28 v #3193 > > //////////<<<<<<<<<.................../.........................................
00:00:28 v #3194 > > │
00:00:28 v #3195 > > ...............////////////////////////////<<<<<<<<<<<<<<<<<....................
00:00:28 v #3196 > > ..///////<<<<<<<<<..............................................................
00:00:28 v #3197 > > │
00:00:28 v #3198 > > ................./////////////////////////<<<<<<<<<<<<<<<<......................
00:00:28 v #3199 > > ....////<<<<<<<<................................................................
00:00:28 v #3200 > > │
00:00:28 v #3201 > > ...................//////////////////////<<<<<<<<<<<<<<<<.......................
00:00:28 v #3202 > > ....../<<<......................................................................
00:00:28 v #3203 > > │
00:00:28 v #3204 > > .....................//////////////////<<<<<<<<<<<<<<<<<........................
00:00:28 v #3205 > > ................................................................................
00:00:28 v #3206 > > │
00:00:28 v #3207 > > ....................../////////////////<<<<<<<<<<<<<<<<.........................
00:00:28 v #3208 > > ................................................................................
00:00:28 v #3209 > > │
00:00:28 v #3210 > > ........................//////////////<<<<<<<<<<<<<<<...........................
00:00:28 v #3211 > > ................................................................................
00:00:28 v #3212 > > │
00:00:28 v #3213 > > ..........................///////////<<<<<<<<<<<<...............................
00:00:28 v #3214 > > ................................................................................
00:00:28 v #3215 > > │
00:00:28 v #3216 > > ............................////////<<<<<<<<<<..................................
00:00:28 v #3217 > > ................................................................................
00:00:28 v #3218 > > │
00:00:28 v #3219 > > .............................//////<<<<<<<......................................
00:00:28 v #3220 > > ................................................................................
00:00:28 v #3221 > > │
00:00:28 v #3222 > > ...............................///<<<<..........................................
00:00:28 v #3223 > > ................................................................................
00:00:28 v #3224 > > │
00:00:28 v #3225 > > .................................<..............................................
00:00:28 v #3226 > > ................................................................................
00:00:28 v #3227 > > │
00:00:28 v #3228 > > ................................................................................
00:00:28 v #3229 > > ................................................................................
00:00:28 v #3230 > > │
00:00:28 v #3231 > > ................................................................................
00:00:28 v #3232 > > ................................................................................
00:00:28 v #3233 > > │
00:00:28 v #3234 > > ................................................................................
00:00:28 v #3235 > > ................................................................................
00:00:28 v #3236 > > │
00:00:28 v #3237 > > ................................................................................
00:00:28 v #3238 > > ................................................................................
00:00:28 v #3239 > > │
00:00:28 v #3240 > > ................................................................................
00:00:28 v #3241 > > ................................................................................
00:00:28 v #3242 > > │
00:00:28 v #3243 > > ................................................................................
00:00:28 v #3244 > > ................................................................................
00:00:28 v #3245 > > │
00:00:28 v #3246 > > ................................................................................
00:00:28 v #3247 > > ................................................................................
00:00:28 v #3248 > > │
00:00:28 v #3249 > > │
00:00:28 v #3250 > > ................................................................................
00:00:28 v #3251 > > ................................................................................
00:00:28 v #3252 > > │
00:00:28 v #3253 > > ................................................................................
00:00:28 v #3254 > > ................................................................................
00:00:28 v #3255 > > │
00:00:28 v #3256 > > ................................................................................
00:00:28 v #3257 > > ................................................................................
00:00:28 v #3258 > > │
00:00:28 v #3259 > > ................................................................................
00:00:28 v #3260 > > ................................................................................
00:00:28 v #3261 > > │
00:00:28 v #3262 > > ................................................................................
00:00:28 v #3263 > > ................................................................................
00:00:28 v #3264 > > │
00:00:28 v #3265 > > ................................................................................
00:00:28 v #3266 > > ................................................................................
00:00:28 v #3267 > > │
00:00:28 v #3268 > > ................................................................................
00:00:28 v #3269 > > ................................................................................
00:00:28 v #3270 > > │
00:00:28 v #3271 > > ................................................................................
00:00:28 v #3272 > > ................................................................................
00:00:28 v #3273 > > │
00:00:28 v #3274 > > ................................................................................
00:00:28 v #3275 > > ................................................................................
00:00:28 v #3276 > > │
00:00:28 v #3277 > > ................................................................................
00:00:28 v #3278 > > ................................................................................
00:00:28 v #3279 > > │
00:00:28 v #3280 > > ...................../;;;;;;;;..................................................
00:00:28 v #3281 > > ................................................................................
00:00:28 v #3282 > > │
00:00:28 v #3283 > > ....................>//;;;;;;;;;;;;;;;;;;;;;....................................
00:00:28 v #3284 > > ................................................................................
00:00:28 v #3285 > > │
00:00:28 v #3286 > > ....................//////;;;;;;;;;;;;;;;;;;;;;.................................
00:00:28 v #3287 > > ................................................................................
00:00:28 v #3288 > > │
00:00:28 v #3289 > > ...................>//////////;/;;;;;;;;;;;;;;;;;;;.............................
00:00:28 v #3290 > > ................................................................................
00:00:28 v #3291 > > │
00:00:28 v #3292 > > ...................//////////////;/;;;;;;;;;;;;;;;;;;;;.........................
00:00:28 v #3293 > > ................................................................................
00:00:28 v #3294 > > │
00:00:28 v #3295 > > ..................>////////////////////;;;;;;;;;;;;;;;;;;;;.....................
00:00:28 v #3296 > > ................................................................................
00:00:28 v #3297 > > │
00:00:28 v #3298 > > ..................//////////////////////;;;;;;;;;;;;;;;;;;;;;;;.................
00:00:28 v #3299 > > .;;;;;;;;;;;;\..................................................................
00:00:28 v #3300 > > │
00:00:28 v #3301 > > .................>/////////////////////////;;;;;;;;;;;;;;;;;;;;;;;..............
00:00:28 v #3302 > > >/;;/;;;;;;;;;;;;...............................................................
00:00:28 v #3303 > > │
00:00:28 v #3304 > > .................////////////////////////////////;;;<<<<<<<<<<<<<<<<............
00:00:28 v #3305 > > /////;;/;;;;;;;;;;;;............................................................
00:00:28 v #3306 > > │
00:00:28 v #3307 > > ................>/////////////////////////////////<<<<<<<<<<<<<<<<<............>
00:00:28 v #3308 > > ////////;;;;;;;;;;;;;;;............;;;;;;;;;....................................
00:00:28 v #3309 > > │
00:00:28 v #3310 > > ................/////////////////////////////////<<<<<<<<<<<<<<<<.............>
00:00:28 v #3311 > > ////////////;;<<<<<<<<<<..........>////;;;;;;;;.................................
00:00:28 v #3312 > > │
00:00:28 v #3313 > > ...............>////////////////////////////////<<<<<<<<<<<<<<<<..............
00:00:28 v #3314 > > //////////////<<<<<<<<<...........//////;<<<<<<.................................
00:00:28 v #3315 > > │
00:00:28 v #3316 > > ...............////////////////////////////////<<<<<<<<<<<<<<<<..............>
00:00:28 v #3317 > > /////////////<<<<<<<<<...........>///////<<<<<..................................
00:00:28 v #3318 > > │
00:00:28 v #3319 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<<..............>
00:00:28 v #3320 > > ////////////<<<<<<<<<............///////<<<<<...................................
00:00:28 v #3321 > > │
00:00:28 v #3322 > > ..............///////////////////////////////<<<<<<<<<<<<<<<<................
00:00:28 v #3323 > > ///////////<<<<<<<<<................///<<<<<....................................
00:00:28 v #3324 > > │
00:00:28 v #3325 > > .............>///////////////////////////////<<<<<<<<<<<<<<<...................
00:00:28 v #3326 > > //////////<<<<<<<<<.............................................................
00:00:28 v #3327 > > │
00:00:28 v #3328 > > ..............//////////////////////////////<<<<<<<<<<<<<<<.....................
00:00:28 v #3329 > > ..///////<<<<<<<<<..............................................................
00:00:28 v #3330 > > │
00:00:28 v #3331 > > ................///////////////////////////<<<<<<<<<<<<<<<......................
00:00:28 v #3332 > > ..../////<<<<<<<................................................................
00:00:28 v #3333 > > │
00:00:28 v #3334 > > ..................////////////////////////<<<<<<<<<<<<<<<.......................
00:00:28 v #3335 > > ......./<<......................................................................
00:00:28 v #3336 > > │
00:00:28 v #3337 > > ..................../////////////////////<<<<<<<<<<<<<<<........................
00:00:28 v #3338 > > ................................................................................
00:00:28 v #3339 > > │
00:00:28 v #3340 > > ......................//////////////////<<<<<<<<<<<<<<<.........................
00:00:28 v #3341 > > ................................................................................
00:00:28 v #3342 > > │
00:00:28 v #3343 > > ........................///////////////<<<<<<<<<<<<<<...........................
00:00:28 v #3344 > > ................................................................................
00:00:28 v #3345 > > │
00:00:28 v #3346 > > ...........................///////////<<<<<<<<<<<<..............................
00:00:28 v #3347 > > ................................................................................
00:00:28 v #3348 > > │
00:00:28 v #3349 > > ............................//////////<<<<<<<<<.................................
00:00:28 v #3350 > > ................................................................................
00:00:28 v #3351 > > │
00:00:28 v #3352 > > ..............................///////<<<<<<.....................................
00:00:28 v #3353 > > ................................................................................
00:00:28 v #3354 > > │
00:00:28 v #3355 > > ................................////<<<<........................................
00:00:28 v #3356 > > ................................................................................
00:00:28 v #3357 > > │
00:00:28 v #3358 > > ...................................<............................................
00:00:28 v #3359 > > ................................................................................
00:00:28 v #3360 > > │
00:00:28 v #3361 > > ................................................................................
00:00:28 v #3362 > > ................................................................................
00:00:28 v #3363 > > │
00:00:28 v #3364 > > ................................................................................
00:00:28 v #3365 > > ................................................................................
00:00:28 v #3366 > > │
00:00:28 v #3367 > > ................................................................................
00:00:28 v #3368 > > ................................................................................
00:00:28 v #3369 > > │
00:00:28 v #3370 > > ................................................................................
00:00:28 v #3371 > > ................................................................................
00:00:28 v #3372 > > │
00:00:28 v #3373 > > ................................................................................
00:00:28 v #3374 > > ................................................................................
00:00:28 v #3375 > > │
00:00:28 v #3376 > > ................................................................................
00:00:28 v #3377 > > ................................................................................
00:00:28 v #3378 > > │
00:00:28 v #3379 > > ................................................................................
00:00:28 v #3380 > > ................................................................................
00:00:28 v #3381 > > │
00:00:28 v #3382 > > │
00:00:28 v #3383 > > ................................................................................
00:00:28 v #3384 > > ................................................................................
00:00:28 v #3385 > > │
00:00:28 v #3386 > > ................................................................................
00:00:28 v #3387 > > ................................................................................
00:00:28 v #3388 > > │
00:00:28 v #3389 > > ................................................................................
00:00:28 v #3390 > > ................................................................................
00:00:28 v #3391 > > │
00:00:28 v #3392 > > ................................................................................
00:00:28 v #3393 > > ................................................................................
00:00:28 v #3394 > > │
00:00:28 v #3395 > > ................................................................................
00:00:28 v #3396 > > ................................................................................
00:00:28 v #3397 > > │
00:00:28 v #3398 > > ................................................................................
00:00:28 v #3399 > > ................................................................................
00:00:28 v #3400 > > │
00:00:28 v #3401 > > ................................................................................
00:00:28 v #3402 > > ................................................................................
00:00:28 v #3403 > > │
00:00:28 v #3404 > > ................................................................................
00:00:28 v #3405 > > ................................................................................
00:00:28 v #3406 > > │
00:00:28 v #3407 > > ................................................................................
00:00:28 v #3408 > > ................................................................................
00:00:28 v #3409 > > │
00:00:28 v #3410 > > ................................................................................
00:00:28 v #3411 > > ................................................................................
00:00:28 v #3412 > > │
00:00:28 v #3413 > > .....................;;;;;......................................................
00:00:28 v #3414 > > ................................................................................
00:00:28 v #3415 > > │
00:00:28 v #3416 > > ....................>/;/;;;;;;;;;;;;;;..........................................
00:00:28 v #3417 > > ................................................................................
00:00:28 v #3418 > > │
00:00:28 v #3419 > > ....................//////;/;;;;;;;;;;;;;;;;;...................................
00:00:28 v #3420 > > ................................................................................
00:00:28 v #3421 > > │
00:00:28 v #3422 > > ...................>//////////;;/;;;;;;;;;;;;;;;;;..............................
00:00:28 v #3423 > > ................................................................................
00:00:28 v #3424 > > │
00:00:28 v #3425 > > ...................////////////////;;;;;;;;;;;;;;;;;;;;.........................
00:00:28 v #3426 > > ................................................................................
00:00:28 v #3427 > > │
00:00:28 v #3428 > > ..................>///////////////////////;;;;;;;;;;;;;;;;;.....................
00:00:28 v #3429 > > ................................................................................
00:00:28 v #3430 > > │
00:00:28 v #3431 > > ................../////////////////////////;;;;;;;;;;;;;;;;;;;;;................
00:00:28 v #3432 > > .;;;;;;;;;;;....................................................................
00:00:28 v #3433 > > │
00:00:28 v #3434 > > .................>///////////////////////////////;;;;;<<<<<<<<<<<<<.............
00:00:28 v #3435 > > >//;/;;;;;;;;;;;................................................................
00:00:28 v #3436 > > │
00:00:28 v #3437 > > .................//////////////////////////////////<<<<<<<<<<<<<<<.............>
00:00:28 v #3438 > > //////;//;;;;;;;;;;;............................................................
00:00:28 v #3439 > > │
00:00:28 v #3440 > > ................>/////////////////////////////////<<<<<<<<<<<<<<<..............>
00:00:28 v #3441 > > /////////;/;;;;;;;;;<<<<...........;;;;;;;;.....................................
00:00:28 v #3442 > > │
00:00:28 v #3443 > > ................//////////////////////////////////<<<<<<<<<<<<<<..............>
00:00:28 v #3444 > > //////////////<<<<<<<<<...........>///;;;;;;;<<.................................
00:00:28 v #3445 > > │
00:00:28 v #3446 > > ...............>/////////////////////////////////<<<<<<<<<<<<<<<..............
00:00:28 v #3447 > > //////////////<<<<<<<<<...........///////;<<<<<.................................
00:00:28 v #3448 > > │
00:00:28 v #3449 > > .............../////////////////////////////////<<<<<<<<<<<<<<<..............>
00:00:28 v #3450 > > /////////////<<<<<<<<<...........>///////<<<<<..................................
00:00:28 v #3451 > > │
00:00:28 v #3452 > > ..............>////////////////////////////////<<<<<<<<<<<<<<<..............>
00:00:28 v #3453 > > ////////////<<<<<<<<<............///////<<<<<...................................
00:00:28 v #3454 > > │
00:00:28 v #3455 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<...............
00:00:28 v #3456 > > ////////////<<<<<<<<................////<<<<<...................................
00:00:28 v #3457 > > │
00:00:28 v #3458 > > ..............////////////////////////////////<<<<<<<<<<<<<<...................
00:00:28 v #3459 > > ///////////<<<<<<<<.............................................................
00:00:28 v #3460 > > │
00:00:28 v #3461 > > .............>///////////////////////////////<<<<<<<<<<<<<<.....................
00:00:28 v #3462 > > ..////////<<<<<<<<..............................................................
00:00:28 v #3463 > > │
00:00:28 v #3464 > > .............../////////////////////////////<<<<<<<<<<<<<<......................
00:00:28 v #3465 > > .....////<<<<<<<................................................................
00:00:28 v #3466 > > │
00:00:28 v #3467 > > .................//////////////////////////<<<<<<<<<<<<<<.......................
00:00:28 v #3468 > > .......//<<.....................................................................
00:00:28 v #3469 > > │
00:00:28 v #3470 > > ....................///////////////////////<<<<<<<<<<<<<........................
00:00:28 v #3471 > > ................................................................................
00:00:28 v #3472 > > │
00:00:28 v #3473 > > ......................////////////////////<<<<<<<<<<<<<.........................
00:00:28 v #3474 > > ................................................................................
00:00:28 v #3475 > > │
00:00:28 v #3476 > > ......................../////////////////<<<<<<<<<<<<...........................
00:00:28 v #3477 > > ................................................................................
00:00:28 v #3478 > > │
00:00:28 v #3479 > > .........................../////////////<<<<<<<<<<..............................
00:00:28 v #3480 > > ................................................................................
00:00:28 v #3481 > > │
00:00:28 v #3482 > > .............................//////////<<<<<<<<.................................
00:00:28 v #3483 > > ................................................................................
00:00:28 v #3484 > > │
00:00:28 v #3485 > > ................................///////<<<<<....................................
00:00:28 v #3486 > > ................................................................................
00:00:28 v #3487 > > │
00:00:28 v #3488 > > ..................................////<<<.......................................
00:00:28 v #3489 > > ................................................................................
00:00:28 v #3490 > > │
00:00:28 v #3491 > > .....................................<..........................................
00:00:28 v #3492 > > ................................................................................
00:00:28 v #3493 > > │
00:00:28 v #3494 > > ................................................................................
00:00:28 v #3495 > > ................................................................................
00:00:28 v #3496 > > │
00:00:28 v #3497 > > ................................................................................
00:00:28 v #3498 > > ................................................................................
00:00:28 v #3499 > > │
00:00:28 v #3500 > > ................................................................................
00:00:28 v #3501 > > ................................................................................
00:00:28 v #3502 > > │
00:00:28 v #3503 > > ................................................................................
00:00:28 v #3504 > > ................................................................................
00:00:28 v #3505 > > │
00:00:28 v #3506 > > ................................................................................
00:00:28 v #3507 > > ................................................................................
00:00:28 v #3508 > > │
00:00:28 v #3509 > > ................................................................................
00:00:28 v #3510 > > ................................................................................
00:00:28 v #3511 > > │
00:00:28 v #3512 > > ................................................................................
00:00:28 v #3513 > > ................................................................................
00:00:28 v #3514 > > │
00:00:28 v #3515 > > │
00:00:28 v #3516 > > ................................................................................
00:00:28 v #3517 > > ................................................................................
00:00:28 v #3518 > > │
00:00:28 v #3519 > > ................................................................................
00:00:28 v #3520 > > ................................................................................
00:00:28 v #3521 > > │
00:00:28 v #3522 > > ................................................................................
00:00:28 v #3523 > > ................................................................................
00:00:28 v #3524 > > │
00:00:28 v #3525 > > ................................................................................
00:00:28 v #3526 > > ................................................................................
00:00:28 v #3527 > > │
00:00:28 v #3528 > > ................................................................................
00:00:28 v #3529 > > ................................................................................
00:00:28 v #3530 > > │
00:00:28 v #3531 > > ................................................................................
00:00:28 v #3532 > > ................................................................................
00:00:28 v #3533 > > │
00:00:28 v #3534 > > ................................................................................
00:00:28 v #3535 > > ................................................................................
00:00:28 v #3536 > > │
00:00:28 v #3537 > > ................................................................................
00:00:28 v #3538 > > ................................................................................
00:00:28 v #3539 > > │
00:00:28 v #3540 > > ................................................................................
00:00:28 v #3541 > > ................................................................................
00:00:28 v #3542 > > │
00:00:28 v #3543 > > ................................................................................
00:00:28 v #3544 > > ................................................................................
00:00:28 v #3545 > > │
00:00:28 v #3546 > > ....................;;..........................................................
00:00:28 v #3547 > > ................................................................................
00:00:28 v #3548 > > │
00:00:28 v #3549 > > ....................//;/;;;;;;;;;...............................................
00:00:28 v #3550 > > ................................................................................
00:00:28 v #3551 > > │
00:00:28 v #3552 > > ...................>//////;;;/;;;;;;;;;;;;;.....................................
00:00:28 v #3553 > > ................................................................................
00:00:28 v #3554 > > │
00:00:28 v #3555 > > ...................////////////;;;;;;;;;;;;;;;;;................................
00:00:28 v #3556 > > ................................................................................
00:00:28 v #3557 > > │
00:00:28 v #3558 > > ..................>/////////////////////;;;;;;;;;;;;;;..........................
00:00:28 v #3559 > > ................................................................................
00:00:28 v #3560 > > │
00:00:28 v #3561 > > ..................>///////////////////////;;;/;;;;;;;;;;;;;;....................
00:00:28 v #3562 > > ................................................................................
00:00:28 v #3563 > > │
00:00:28 v #3564 > > ................../////////////////////////////;;/;;;;;;;;;;;;;;;...............
00:00:28 v #3565 > > ;;;;;;;;;;;.....................................................................
00:00:28 v #3566 > > │
00:00:28 v #3567 > > .................>//////////////////////////////////<<<<<<<<<<<<<<..............
00:00:28 v #3568 > > >/;/;;;;;;;;;;;;................................................................
00:00:28 v #3569 > > │
00:00:28 v #3570 > > .................//////////////////////////////////<<<<<<<<<<<<<<..............>
00:00:28 v #3571 > > ///////;;/;;;;;;;;;;;...........................................................
00:00:28 v #3572 > > │
00:00:28 v #3573 > > ................>//////////////////////////////////<<<<<<<<<<<<<...............>
00:00:28 v #3574 > > //////////;;/;;;<<<<<<<............/;;;;;;;\....................................
00:00:28 v #3575 > > │
00:00:28 v #3576 > > ................//////////////////////////////////<<<<<<<<<<<<<...............>
00:00:28 v #3577 > > ///////////////<<<<<<<<...........>//;;/;;;;<<<.................................
00:00:28 v #3578 > > │
00:00:28 v #3579 > > ...............>//////////////////////////////////<<<<<<<<<<<<................
00:00:28 v #3580 > > //////////////<<<<<<<<............>///////<<<<..................................
00:00:28 v #3581 > > │
00:00:28 v #3582 > > ...............>/////////////////////////////////<<<<<<<<<<<<<...............>
00:00:28 v #3583 > > /////////////<<<<<<<<............>///////<<<<<..................................
00:00:28 v #3584 > > │
00:00:28 v #3585 > > .............../////////////////////////////////<<<<<<<<<<<<<................>
00:00:28 v #3586 > > /////////////<<<<<<<<............////////<<<<...................................
00:00:28 v #3587 > > │
00:00:28 v #3588 > > ..............>////////////////////////////////<<<<<<<<<<<<<.................
00:00:28 v #3589 > > ////////////<<<<<<<<................////<<<<<...................................
00:00:28 v #3590 > > │
00:00:28 v #3591 > > ............../////////////////////////////////<<<<<<<<<<<<...................
00:00:28 v #3592 > > ///////////<<<<<<<<.............................................................
00:00:28 v #3593 > > │
00:00:28 v #3594 > > .............>////////////////////////////////<<<<<<<<<<<<<.....................
00:00:28 v #3595 > > ../////////<<<<<<<<.............................................................
00:00:28 v #3596 > > │
00:00:28 v #3597 > > .............////////////////////////////////<<<<<<<<<<<<<......................
00:00:28 v #3598 > > ...../////<<<<<<................................................................
00:00:28 v #3599 > > │
00:00:28 v #3600 > > ................/////////////////////////////<<<<<<<<<<<<.......................
00:00:28 v #3601 > > ........./<.....................................................................
00:00:28 v #3602 > > │
00:00:28 v #3603 > > .................../////////////////////////<<<<<<<<<<<<........................
00:00:28 v #3604 > > ................................................................................
00:00:28 v #3605 > > │
00:00:28 v #3606 > > ....................../////////////////////<<<<<<<<<<<<.........................
00:00:28 v #3607 > > ................................................................................
00:00:28 v #3608 > > │
00:00:28 v #3609 > > ........................///////////////////<<<<<<<<<<...........................
00:00:28 v #3610 > > ................................................................................
00:00:28 v #3611 > > │
00:00:28 v #3612 > > ............................//////////////<<<<<<<<<.............................
00:00:28 v #3613 > > ................................................................................
00:00:28 v #3614 > > │
00:00:28 v #3615 > > ...............................//////////<<<<<<<................................
00:00:28 v #3616 > > ................................................................................
00:00:28 v #3617 > > │
00:00:28 v #3618 > > ..................................///////<<<<<..................................
00:00:28 v #3619 > > ................................................................................
00:00:28 v #3620 > > │
00:00:28 v #3621 > > ....................................////<<<.....................................
00:00:28 v #3622 > > ................................................................................
00:00:28 v #3623 > > │
00:00:28 v #3624 > > ......................................./........................................
00:00:28 v #3625 > > ................................................................................
00:00:28 v #3626 > > │
00:00:28 v #3627 > > ................................................................................
00:00:28 v #3628 > > ................................................................................
00:00:28 v #3629 > > │
00:00:28 v #3630 > > ................................................................................
00:00:28 v #3631 > > ................................................................................
00:00:28 v #3632 > > │
00:00:28 v #3633 > > ................................................................................
00:00:28 v #3634 > > ................................................................................
00:00:28 v #3635 > > │
00:00:28 v #3636 > > ................................................................................
00:00:28 v #3637 > > ................................................................................
00:00:28 v #3638 > > │
00:00:28 v #3639 > > ................................................................................
00:00:28 v #3640 > > ................................................................................
00:00:28 v #3641 > > │
00:00:28 v #3642 > > ................................................................................
00:00:28 v #3643 > > ................................................................................
00:00:28 v #3644 > > │
00:00:28 v #3645 > > ................................................................................
00:00:28 v #3646 > > ................................................................................
00:00:28 v #3647 > > │
00:00:28 v #3648 > > │
00:00:28 v #3649 > > ................................................................................
00:00:28 v #3650 > > ................................................................................
00:00:28 v #3651 > > │
00:00:28 v #3652 > > ................................................................................
00:00:28 v #3653 > > ................................................................................
00:00:28 v #3654 > > │
00:00:28 v #3655 > > ................................................................................
00:00:28 v #3656 > > ................................................................................
00:00:28 v #3657 > > │
00:00:28 v #3658 > > ................................................................................
00:00:28 v #3659 > > ................................................................................
00:00:28 v #3660 > > │
00:00:28 v #3661 > > ................................................................................
00:00:28 v #3662 > > ................................................................................
00:00:28 v #3663 > > │
00:00:28 v #3664 > > ................................................................................
00:00:28 v #3665 > > ................................................................................
00:00:28 v #3666 > > │
00:00:28 v #3667 > > ................................................................................
00:00:28 v #3668 > > ................................................................................
00:00:28 v #3669 > > │
00:00:28 v #3670 > > ................................................................................
00:00:28 v #3671 > > ................................................................................
00:00:28 v #3672 > > │
00:00:28 v #3673 > > ................................................................................
00:00:28 v #3674 > > ................................................................................
00:00:28 v #3675 > > │
00:00:28 v #3676 > > ................................................................................
00:00:28 v #3677 > > ................................................................................
00:00:28 v #3678 > > │
00:00:28 v #3679 > > ................................................................................
00:00:28 v #3680 > > ................................................................................
00:00:28 v #3681 > > │
00:00:28 v #3682 > > ...................;/;;;;;;;;...................................................
00:00:28 v #3683 > > ................................................................................
00:00:28 v #3684 > > │
00:00:28 v #3685 > > ...................//////;///;;;;;;;;;;.........................................
00:00:28 v #3686 > > ................................................................................
00:00:28 v #3687 > > │
00:00:28 v #3688 > > ..................>/////////////;;;;;;;;;;;;;;;.................................
00:00:28 v #3689 > > ................................................................................
00:00:28 v #3690 > > │
00:00:28 v #3691 > > ..................>////////////////////;//;;;;;;;;;;;;..........................
00:00:28 v #3692 > > ................................................................................
00:00:28 v #3693 > > │
00:00:28 v #3694 > > ................../////////////////////////////;/;;;;;;;;;;;;...................
00:00:28 v #3695 > > ................................................................................
00:00:28 v #3696 > > │
00:00:28 v #3697 > > .................>///////////////////////////////////<<<<<<<<<<<<...............
00:00:28 v #3698 > > ................................................................................
00:00:28 v #3699 > > │
00:00:28 v #3700 > > .................>//////////////////////////////////<<<<<<<<<<<<................
00:00:28 v #3701 > > /;;/;;;;;;;;;;;.................................................................
00:00:28 v #3702 > > │
00:00:28 v #3703 > > .................///////////////////////////////////<<<<<<<<<<<<...............>
00:00:28 v #3704 > > ///////;;;;;;;;;;;;;;...........................................................
00:00:28 v #3705 > > │
00:00:28 v #3706 > > ................>//////////////////////////////////<<<<<<<<<<<<................>
00:00:28 v #3707 > > /////////////;;<<<<<<<<............;;;;;;;;.....................................
00:00:28 v #3708 > > │
00:00:28 v #3709 > > ................>//////////////////////////////////<<<<<<<<<<<................>
00:00:28 v #3710 > > ///////////////<<<<<<<............>//;;/;;<<<<<.................................
00:00:28 v #3711 > > │
00:00:28 v #3712 > > ................//////////////////////////////////<<<<<<<<<<<<................>
00:00:28 v #3713 > > ///////////////<<<<<<<............>///////<<<<..................................
00:00:28 v #3714 > > │
00:00:28 v #3715 > > ...............>//////////////////////////////////<<<<<<<<<<<.................
00:00:28 v #3716 > > //////////////<<<<<<<............>///////<<<<<..................................
00:00:28 v #3717 > > │
00:00:28 v #3718 > > ...............//////////////////////////////////<<<<<<<<<<<.................>
00:00:28 v #3719 > > /////////////<<<<<<<.............>///////<<<<...................................
00:00:28 v #3720 > > │
00:00:28 v #3721 > > ...............//////////////////////////////////<<<<<<<<<<<.................
00:00:28 v #3722 > > /////////////<<<<<<<................////<<<<<...................................
00:00:28 v #3723 > > │
00:00:28 v #3724 > > ..............>/////////////////////////////////<<<<<<<<<<<..................
00:00:28 v #3725 > > ////////////<<<<<<<.............................................................
00:00:28 v #3726 > > │
00:00:28 v #3727 > > ............../////////////////////////////////<<<<<<<<<<<......................
00:00:28 v #3728 > > ..//////////<<<<<<<.............................................................
00:00:28 v #3729 > > │
00:00:28 v #3730 > > .............//////////////////////////////////<<<<<<<<<<<......................
00:00:28 v #3731 > > ....../////<<<<<................................................................
00:00:28 v #3732 > > │
00:00:28 v #3733 > > ..............////////////////////////////////<<<<<<<<<<<.......................
00:00:28 v #3734 > > ........../<....................................................................
00:00:28 v #3735 > > │
00:00:28 v #3736 > > ................./////////////////////////////<<<<<<<<<<........................
00:00:28 v #3737 > > ................................................................................
00:00:28 v #3738 > > │
00:00:28 v #3739 > > .....................////////////////////////<<<<<<<<<<<........................
00:00:28 v #3740 > > ................................................................................
00:00:28 v #3741 > > │
00:00:28 v #3742 > > ........................////////////////////<<<<<<<<<<..........................
00:00:28 v #3743 > > ................................................................................
00:00:28 v #3744 > > │
00:00:28 v #3745 > > ............................////////////////<<<<<<<.............................
00:00:28 v #3746 > > ................................................................................
00:00:28 v #3747 > > │
00:00:28 v #3748 > > ................................///////////<<<<<<...............................
00:00:28 v #3749 > > ................................................................................
00:00:28 v #3750 > > │
00:00:28 v #3751 > > ...................................////////<<<<.................................
00:00:28 v #3752 > > ................................................................................
00:00:28 v #3753 > > │
00:00:28 v #3754 > > .......................................///<<....................................
00:00:28 v #3755 > > ................................................................................
00:00:28 v #3756 > > │
00:00:28 v #3757 > > ................................................................................
00:00:28 v #3758 > > ................................................................................
00:00:28 v #3759 > > │
00:00:28 v #3760 > > ................................................................................
00:00:28 v #3761 > > ................................................................................
00:00:28 v #3762 > > │
00:00:28 v #3763 > > ................................................................................
00:00:28 v #3764 > > ................................................................................
00:00:28 v #3765 > > │
00:00:28 v #3766 > > ................................................................................
00:00:28 v #3767 > > ................................................................................
00:00:28 v #3768 > > │
00:00:28 v #3769 > > ................................................................................
00:00:28 v #3770 > > ................................................................................
00:00:28 v #3771 > > │
00:00:28 v #3772 > > ................................................................................
00:00:28 v #3773 > > ................................................................................
00:00:28 v #3774 > > │
00:00:28 v #3775 > > ................................................................................
00:00:28 v #3776 > > ................................................................................
00:00:28 v #3777 > > │
00:00:28 v #3778 > > ................................................................................
00:00:28 v #3779 > > ................................................................................
00:00:28 v #3780 > > │
00:00:28 v #3781 > > │
00:00:28 v #3782 > > ................................................................................
00:00:28 v #3783 > > ................................................................................
00:00:28 v #3784 > > │
00:00:28 v #3785 > > ................................................................................
00:00:28 v #3786 > > ................................................................................
00:00:28 v #3787 > > │
00:00:28 v #3788 > > ................................................................................
00:00:28 v #3789 > > ................................................................................
00:00:28 v #3790 > > │
00:00:28 v #3791 > > ................................................................................
00:00:28 v #3792 > > ................................................................................
00:00:28 v #3793 > > │
00:00:28 v #3794 > > ................................................................................
00:00:28 v #3795 > > ................................................................................
00:00:28 v #3796 > > │
00:00:28 v #3797 > > ................................................................................
00:00:28 v #3798 > > ................................................................................
00:00:28 v #3799 > > │
00:00:28 v #3800 > > ................................................................................
00:00:28 v #3801 > > ................................................................................
00:00:28 v #3802 > > │
00:00:28 v #3803 > > ................................................................................
00:00:28 v #3804 > > ................................................................................
00:00:28 v #3805 > > │
00:00:28 v #3806 > > ................................................................................
00:00:28 v #3807 > > ................................................................................
00:00:28 v #3808 > > │
00:00:28 v #3809 > > ................................................................................
00:00:28 v #3810 > > ................................................................................
00:00:28 v #3811 > > │
00:00:28 v #3812 > > ................................................................................
00:00:28 v #3813 > > ................................................................................
00:00:28 v #3814 > > │
00:00:28 v #3815 > > ...................;;;;;........................................................
00:00:28 v #3816 > > ................................................................................
00:00:28 v #3817 > > │
00:00:28 v #3818 > > ..................>//////;;;;;;;;;;.............................................
00:00:28 v #3819 > > ................................................................................
00:00:28 v #3820 > > │
00:00:28 v #3821 > > ..................>//////////////;;;;/;;;;;;....................................
00:00:28 v #3822 > > ................................................................................
00:00:28 v #3823 > > │
00:00:28 v #3824 > > ..................//////////////////////////;;;;;;;;;;..........................
00:00:28 v #3825 > > ................................................................................
00:00:28 v #3826 > > │
00:00:28 v #3827 > > ..................//////////////////////////////////;/<<<<<<<<<.................
00:00:28 v #3828 > > ................................................................................
00:00:28 v #3829 > > │
00:00:28 v #3830 > > .................>///////////////////////////////////<<<<<<<<<<.................
00:00:28 v #3831 > > ................................................................................
00:00:28 v #3832 > > │
00:00:28 v #3833 > > .................////////////////////////////////////<<<<<<<<<<.................
00:00:28 v #3834 > > ;/;;;;;;;;;;;;;.................................................................
00:00:28 v #3835 > > │
00:00:28 v #3836 > > .................///////////////////////////////////<<<<<<<<<<.................>
00:00:28 v #3837 > > ///////;;;;;;;;;;;;;;<..........................................................
00:00:28 v #3838 > > │
00:00:28 v #3839 > > ................>///////////////////////////////////<<<<<<<<<<.................
00:00:28 v #3840 > > //////////////;<<<<<<<.............;;;;;;;;.....................................
00:00:28 v #3841 > > │
00:00:28 v #3842 > > ................>///////////////////////////////////<<<<<<<<<..................
00:00:28 v #3843 > > ///////////////<<<<<<<............>//;;//;<<<<..................................
00:00:28 v #3844 > > │
00:00:28 v #3845 > > ................///////////////////////////////////<<<<<<<<<<.................>
00:00:28 v #3846 > > ///////////////<<<<<<.............>///////<<<<..................................
00:00:28 v #3847 > > │
00:00:28 v #3848 > > ...............>//////////////////////////////////<<<<<<<<<<..................
00:00:28 v #3849 > > //////////////<<<<<<<.............////////<<<<..................................
00:00:28 v #3850 > > │
00:00:28 v #3851 > > ...............>//////////////////////////////////<<<<<<<<<<..................
00:00:28 v #3852 > > ///////////////<<<<<.............>///////<<<<...................................
00:00:28 v #3853 > > │
00:00:28 v #3854 > > ...............///////////////////////////////////<<<<<<<<<..................>
00:00:28 v #3855 > > /////////////<<<<<<<................/////<<<<...................................
00:00:28 v #3856 > > │
00:00:28 v #3857 > > ...............//////////////////////////////////<<<<<<<<<<..................
00:00:28 v #3858 > > /////////////<<<<<<.............................................................
00:00:28 v #3859 > > │
00:00:28 v #3860 > > ..............>//////////////////////////////////<<<<<<<<<......................
00:00:28 v #3861 > > .///////////<<<<<<<.............................................................
00:00:28 v #3862 > > │
00:00:28 v #3863 > > ..............>/////////////////////////////////<<<<<<<<<<......................
00:00:28 v #3864 > > ......./////<<<<................................................................
00:00:28 v #3865 > > │
00:00:28 v #3866 > > ..............//////////////////////////////////<<<<<<<<<.......................
00:00:28 v #3867 > > ................................................................................
00:00:28 v #3868 > > │
00:00:28 v #3869 > > ...............////////////////////////////////<<<<<<<<<<.......................
00:00:28 v #3870 > > ................................................................................
00:00:28 v #3871 > > │
00:00:28 v #3872 > > ....................///////////////////////////<<<<<<<<<........................
00:00:28 v #3873 > > ................................................................................
00:00:28 v #3874 > > │
00:00:28 v #3875 > > ........................//////////////////////<<<<<<<<..........................
00:00:28 v #3876 > > ................................................................................
00:00:28 v #3877 > > │
00:00:28 v #3878 > > ............................./////////////////<<<<<<............................
00:00:28 v #3879 > > ................................................................................
00:00:28 v #3880 > > │
00:00:28 v #3881 > > .................................////////////<<<<<..............................
00:00:28 v #3882 > > ................................................................................
00:00:28 v #3883 > > │
00:00:28 v #3884 > > ......................................///////<<<................................
00:00:28 v #3885 > > ................................................................................
00:00:28 v #3886 > > │
00:00:28 v #3887 > > ..........................................//<<..................................
00:00:28 v #3888 > > ................................................................................
00:00:28 v #3889 > > │
00:00:28 v #3890 > > ................................................................................
00:00:28 v #3891 > > ................................................................................
00:00:28 v #3892 > > │
00:00:28 v #3893 > > ................................................................................
00:00:28 v #3894 > > ................................................................................
00:00:28 v #3895 > > │
00:00:28 v #3896 > > ................................................................................
00:00:28 v #3897 > > ................................................................................
00:00:28 v #3898 > > │
00:00:28 v #3899 > > ................................................................................
00:00:28 v #3900 > > ................................................................................
00:00:28 v #3901 > > │
00:00:28 v #3902 > > ................................................................................
00:00:28 v #3903 > > ................................................................................
00:00:28 v #3904 > > │
00:00:28 v #3905 > > ................................................................................
00:00:28 v #3906 > > ................................................................................
00:00:28 v #3907 > > │
00:00:28 v #3908 > > ................................................................................
00:00:28 v #3909 > > ................................................................................
00:00:28 v #3910 > > │
00:00:28 v #3911 > > ................................................................................
00:00:28 v #3912 > > ................................................................................
00:00:28 v #3913 > > │
00:00:28 v #3914 > > │
00:00:28 v #3915 > > ................................................................................
00:00:28 v #3916 > > ................................................................................
00:00:28 v #3917 > > │
00:00:28 v #3918 > > ................................................................................
00:00:28 v #3919 > > ................................................................................
00:00:28 v #3920 > > │
00:00:28 v #3921 > > ................................................................................
00:00:28 v #3922 > > ................................................................................
00:00:28 v #3923 > > │
00:00:28 v #3924 > > ................................................................................
00:00:28 v #3925 > > ................................................................................
00:00:28 v #3926 > > │
00:00:28 v #3927 > > ................................................................................
00:00:28 v #3928 > > ................................................................................
00:00:28 v #3929 > > │
00:00:28 v #3930 > > ................................................................................
00:00:28 v #3931 > > ................................................................................
00:00:28 v #3932 > > │
00:00:28 v #3933 > > ................................................................................
00:00:28 v #3934 > > ................................................................................
00:00:28 v #3935 > > │
00:00:28 v #3936 > > ................................................................................
00:00:28 v #3937 > > ................................................................................
00:00:28 v #3938 > > │
00:00:28 v #3939 > > ................................................................................
00:00:28 v #3940 > > ................................................................................
00:00:28 v #3941 > > │
00:00:28 v #3942 > > ................................................................................
00:00:28 v #3943 > > ................................................................................
00:00:28 v #3944 > > │
00:00:28 v #3945 > > ................................................................................
00:00:28 v #3946 > > ................................................................................
00:00:28 v #3947 > > │
00:00:28 v #3948 > > ..................;;;...........................................................
00:00:28 v #3949 > > ................................................................................
00:00:28 v #3950 > > │
00:00:28 v #3951 > > ..................//;;;;;;/;;;;;;;;.............................................
00:00:28 v #3952 > > ................................................................................
00:00:28 v #3953 > > │
00:00:28 v #3954 > > ..................////////////////;;//;;;;;;;;;;;...............................
00:00:28 v #3955 > > ................................................................................
00:00:28 v #3956 > > │
00:00:28 v #3957 > > .................>///////////////////////////////;;;/;<<<<<.....................
00:00:28 v #3958 > > ................................................................................
00:00:28 v #3959 > > │
00:00:28 v #3960 > > .................>////////////////////////////////////<<<<<<<<..................
00:00:28 v #3961 > > ................................................................................
00:00:28 v #3962 > > │
00:00:28 v #3963 > > ................./////////////////////////////////////<<<<<<<<..................
00:00:28 v #3964 > > ................................................................................
00:00:28 v #3965 > > │
00:00:28 v #3966 > > .................////////////////////////////////////<<<<<<<<<.................>
00:00:28 v #3967 > > /;;;;;;;;;;;;;..................................................................
00:00:28 v #3968 > > │
00:00:28 v #3969 > > .................////////////////////////////////////<<<<<<<<..................>
00:00:28 v #3970 > > ///////;;;;;;;;/<<<<<<..........................................................
00:00:28 v #3971 > > │
00:00:28 v #3972 > > ................>///////////////////////////////////<<<<<<<<<..................
00:00:28 v #3973 > > ////////////////<<<<<<.............;;;;;;;;.....................................
00:00:28 v #3974 > > │
00:00:28 v #3975 > > ................>///////////////////////////////////<<<<<<<<...................
00:00:28 v #3976 > > ///////////////<<<<<<.............>//;;;//<<<<..................................
00:00:28 v #3977 > > │
00:00:28 v #3978 > > ................////////////////////////////////////<<<<<<<<..................>
00:00:28 v #3979 > > ///////////////<<<<<<.............>///////<<<<..................................
00:00:28 v #3980 > > │
00:00:28 v #3981 > > ................///////////////////////////////////<<<<<<<<<..................>
00:00:28 v #3982 > > //////////////<<<<<<..............////////<<<...................................
00:00:28 v #3983 > > │
00:00:28 v #3984 > > ................///////////////////////////////////<<<<<<<<...................
00:00:28 v #3985 > > //////////////<<<<<<..............///////<<<<...................................
00:00:28 v #3986 > > │
00:00:28 v #3987 > > ...............>///////////////////////////////////<<<<<<<<...................
00:00:28 v #3988 > > //////////////<<<<<<................/////<<<<...................................
00:00:28 v #3989 > > │
00:00:28 v #3990 > > ...............>//////////////////////////////////<<<<<<<<...................>
00:00:28 v #3991 > > /////////////<<<<<<.............................................................
00:00:28 v #3992 > > │
00:00:28 v #3993 > > ...............///////////////////////////////////<<<<<<<<......................
00:00:28 v #3994 > > .////////////<<<<<<.............................................................
00:00:28 v #3995 > > │
00:00:28 v #3996 > > ...............///////////////////////////////////<<<<<<<<......................
00:00:28 v #3997 > > ......../////<<<................................................................
00:00:28 v #3998 > > │
00:00:28 v #3999 > > ..............>//////////////////////////////////<<<<<<<<.......................
00:00:28 v #4000 > > ................................................................................
00:00:28 v #4001 > > │
00:00:28 v #4002 > > ..............>//////////////////////////////////<<<<<<<<.......................
00:00:28 v #4003 > > ................................................................................
00:00:28 v #4004 > > │
00:00:28 v #4005 > > ..................//////////////////////////////<<<<<<<<........................
00:00:28 v #4006 > > ................................................................................
00:00:28 v #4007 > > │
00:00:28 v #4008 > > ......................./////////////////////////<<<<<<..........................
00:00:28 v #4009 > > ................................................................................
00:00:28 v #4010 > > │
00:00:28 v #4011 > > .............................///////////////////<<<<............................
00:00:28 v #4012 > > ................................................................................
00:00:28 v #4013 > > │
00:00:28 v #4014 > > ...................................////////////<<<<.............................
00:00:28 v #4015 > > ................................................................................
00:00:28 v #4016 > > │
00:00:28 v #4017 > > .........................................//////<<...............................
00:00:28 v #4018 > > ................................................................................
00:00:28 v #4019 > > │
00:00:28 v #4020 > > ............................................../.................................
00:00:28 v #4021 > > ................................................................................
00:00:28 v #4022 > > │
00:00:28 v #4023 > > ................................................................................
00:00:28 v #4024 > > ................................................................................
00:00:28 v #4025 > > │
00:00:28 v #4026 > > ................................................................................
00:00:28 v #4027 > > ................................................................................
00:00:28 v #4028 > > │
00:00:28 v #4029 > > ................................................................................
00:00:28 v #4030 > > ................................................................................
00:00:28 v #4031 > > │
00:00:28 v #4032 > > ................................................................................
00:00:28 v #4033 > > ................................................................................
00:00:28 v #4034 > > │
00:00:28 v #4035 > > ................................................................................
00:00:28 v #4036 > > ................................................................................
00:00:28 v #4037 > > │
00:00:28 v #4038 > > ................................................................................
00:00:28 v #4039 > > ................................................................................
00:00:28 v #4040 > > │
00:00:28 v #4041 > > ................................................................................
00:00:28 v #4042 > > ................................................................................
00:00:28 v #4043 > > │
00:00:28 v #4044 > > ................................................................................
00:00:28 v #4045 > > ................................................................................
00:00:28 v #4046 > > │
00:00:28 v #4047 > > │
00:00:28 v #4048 > > ................................................................................
00:00:28 v #4049 > > ................................................................................
00:00:28 v #4050 > > │
00:00:28 v #4051 > > ................................................................................
00:00:28 v #4052 > > ................................................................................
00:00:28 v #4053 > > │
00:00:28 v #4054 > > ................................................................................
00:00:28 v #4055 > > ................................................................................
00:00:28 v #4056 > > │
00:00:28 v #4057 > > ................................................................................
00:00:28 v #4058 > > ................................................................................
00:00:28 v #4059 > > │
00:00:28 v #4060 > > ................................................................................
00:00:28 v #4061 > > ................................................................................
00:00:28 v #4062 > > │
00:00:28 v #4063 > > ................................................................................
00:00:28 v #4064 > > ................................................................................
00:00:28 v #4065 > > │
00:00:28 v #4066 > > ................................................................................
00:00:28 v #4067 > > ................................................................................
00:00:28 v #4068 > > │
00:00:28 v #4069 > > ................................................................................
00:00:28 v #4070 > > ................................................................................
00:00:28 v #4071 > > │
00:00:28 v #4072 > > ................................................................................
00:00:28 v #4073 > > ................................................................................
00:00:28 v #4074 > > │
00:00:28 v #4075 > > ................................................................................
00:00:28 v #4076 > > ................................................................................
00:00:28 v #4077 > > │
00:00:28 v #4078 > > ................................................................................
00:00:28 v #4079 > > ................................................................................
00:00:28 v #4080 > > │
00:00:28 v #4081 > > ................................................................................
00:00:28 v #4082 > > ................................................................................
00:00:28 v #4083 > > │
00:00:28 v #4084 > > .................>;;;;;;;;;;;;/;;;;;;;;.........................................
00:00:28 v #4085 > > ................................................................................
00:00:28 v #4086 > > │
00:00:28 v #4087 > > .................>////////////////////;;/;;/;;/;;;;;;;;<<.......................
00:00:28 v #4088 > > ................................................................................
00:00:28 v #4089 > > │
00:00:28 v #4090 > > .................>////////////////////////////////////<<<<<<....................
00:00:28 v #4091 > > ................................................................................
00:00:28 v #4092 > > │
00:00:28 v #4093 > > ................./////////////////////////////////////<<<<<<<...................
00:00:28 v #4094 > > ................................................................................
00:00:28 v #4095 > > │
00:00:28 v #4096 > > ................./////////////////////////////////////<<<<<<<...................
00:00:28 v #4097 > > ................................................................................
00:00:28 v #4098 > > │
00:00:28 v #4099 > > ................./////////////////////////////////////<<<<<<...................;
00:00:28 v #4100 > > ;;;;;/;;;;;;;...................................................................
00:00:28 v #4101 > > │
00:00:28 v #4102 > > .................////////////////////////////////////<<<<<<<...................>
00:00:28 v #4103 > > ////////;;;///;;<<<<<...........................................................
00:00:28 v #4104 > > │
00:00:28 v #4105 > > ................>////////////////////////////////////<<<<<<<...................
00:00:28 v #4106 > > ////////////////<<<<<..............;;;;;;;;.....................................
00:00:28 v #4107 > > │
00:00:28 v #4108 > > ................>////////////////////////////////////<<<<<<....................
00:00:28 v #4109 > > ///////////////<<<<<<.............>//;;;;;<<<<..................................
00:00:28 v #4110 > > │
00:00:28 v #4111 > > ................>////////////////////////////////////<<<<<<....................
00:00:28 v #4112 > > ///////////////<<<<<..............>///////<<<<..................................
00:00:28 v #4113 > > │
00:00:28 v #4114 > > ................>///////////////////////////////////<<<<<<<...................>
00:00:28 v #4115 > > ///////////////<<<<<..............>///////<<<...................................
00:00:28 v #4116 > > │
00:00:28 v #4117 > > ................////////////////////////////////////<<<<<<<...................>
00:00:28 v #4118 > > ///////////////<<<<<..............////////<<<...................................
00:00:28 v #4119 > > │
00:00:28 v #4120 > > ................////////////////////////////////////<<<<<<....................>
00:00:28 v #4121 > > ///////////////<<<<<...............///////<<=...................................
00:00:28 v #4122 > > │
00:00:28 v #4123 > > ................////////////////////////////////////<<<<<<....................
00:00:28 v #4124 > > //////////////<<<<<.............................................................
00:00:28 v #4125 > > │
00:00:28 v #4126 > > ...............>///////////////////////////////////<<<<<<<.....................
00:00:28 v #4127 > > //////////////<<<<<.............................................................
00:00:28 v #4128 > > │
00:00:28 v #4129 > > ...............>///////////////////////////////////<<<<<<.......................
00:00:28 v #4130 > > ........./////<<................................................................
00:00:28 v #4131 > > │
00:00:28 v #4132 > > ...............>///////////////////////////////////<<<<<<.......................
00:00:28 v #4133 > > ................................................................................
00:00:28 v #4134 > > │
00:00:28 v #4135 > > ...............>///////////////////////////////////<<<<<<.......................
00:00:28 v #4136 > > ................................................................................
00:00:28 v #4137 > > │
00:00:28 v #4138 > > ...............///////////////////////////////////<<<<<<........................
00:00:28 v #4139 > > ................................................................................
00:00:28 v #4140 > > │
00:00:28 v #4141 > > ......................////////////////////////////<<<<<.........................
00:00:28 v #4142 > > ................................................................................
00:00:28 v #4143 > > │
00:00:28 v #4144 > > ..............................////////////////////<<<...........................
00:00:28 v #4145 > > ................................................................................
00:00:28 v #4146 > > │
00:00:28 v #4147 > > ...................................../////////////<<............................
00:00:28 v #4148 > > ................................................................................
00:00:28 v #4149 > > │
00:00:28 v #4150 > > .............................................////<<.............................
00:00:28 v #4151 > > ................................................................................
00:00:28 v #4152 > > │
00:00:28 v #4153 > > ................................................................................
00:00:28 v #4154 > > ................................................................................
00:00:28 v #4155 > > │
00:00:28 v #4156 > > ................................................................................
00:00:28 v #4157 > > ................................................................................
00:00:28 v #4158 > > │
00:00:28 v #4159 > > ................................................................................
00:00:28 v #4160 > > ................................................................................
00:00:28 v #4161 > > │
00:00:28 v #4162 > > ................................................................................
00:00:28 v #4163 > > ................................................................................
00:00:28 v #4164 > > │
00:00:28 v #4165 > > ................................................................................
00:00:28 v #4166 > > ................................................................................
00:00:28 v #4167 > > │
00:00:28 v #4168 > > ................................................................................
00:00:28 v #4169 > > ................................................................................
00:00:28 v #4170 > > │
00:00:28 v #4171 > > ................................................................................
00:00:28 v #4172 > > ................................................................................
00:00:28 v #4173 > > │
00:00:28 v #4174 > > ................................................................................
00:00:28 v #4175 > > ................................................................................
00:00:28 v #4176 > > │
00:00:28 v #4177 > > ................................................................................
00:00:28 v #4178 > > ................................................................................
00:00:28 v #4179 > > │
00:00:28 v #4180 > > │
00:00:28 v #4181 > > ................................................................................
00:00:28 v #4182 > > ................................................................................
00:00:28 v #4183 > > │
00:00:28 v #4184 > > ................................................................................
00:00:28 v #4185 > > ................................................................................
00:00:28 v #4186 > > │
00:00:28 v #4187 > > ................................................................................
00:00:28 v #4188 > > ................................................................................
00:00:28 v #4189 > > │
00:00:28 v #4190 > > ................................................................................
00:00:28 v #4191 > > ................................................................................
00:00:28 v #4192 > > │
00:00:28 v #4193 > > ................................................................................
00:00:28 v #4194 > > ................................................................................
00:00:28 v #4195 > > │
00:00:28 v #4196 > > ................................................................................
00:00:28 v #4197 > > ................................................................................
00:00:28 v #4198 > > │
00:00:28 v #4199 > > ................................................................................
00:00:28 v #4200 > > ................................................................................
00:00:28 v #4201 > > │
00:00:28 v #4202 > > ................................................................................
00:00:28 v #4203 > > ................................................................................
00:00:28 v #4204 > > │
00:00:28 v #4205 > > ................................................................................
00:00:28 v #4206 > > ................................................................................
00:00:28 v #4207 > > │
00:00:28 v #4208 > > ................................................................................
00:00:28 v #4209 > > ................................................................................
00:00:28 v #4210 > > │
00:00:28 v #4211 > > ................................................................................
00:00:28 v #4212 > > ................................................................................
00:00:28 v #4213 > > │
00:00:28 v #4214 > > ................................................................................
00:00:28 v #4215 > > ................................................................................
00:00:28 v #4216 > > │
00:00:28 v #4217 > > .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................
00:00:28 v #4218 > > ................................................................................
00:00:28 v #4219 > > │
00:00:28 v #4220 > > .................//////////////////////////////////////<<<......................
00:00:28 v #4221 > > ................................................................................
00:00:28 v #4222 > > │
00:00:28 v #4223 > > .................//////////////////////////////////////<<<<.....................
00:00:28 v #4224 > > ................................................................................
00:00:28 v #4225 > > │
00:00:28 v #4226 > > ................./////////////////////////////////////<<<<<.....................
00:00:28 v #4227 > > ................................................................................
00:00:28 v #4228 > > │
00:00:28 v #4229 > > ................./////////////////////////////////////<<<<<.....................
00:00:28 v #4230 > > ................................................................................
00:00:28 v #4231 > > │
00:00:28 v #4232 > > ................./////////////////////////////////////<<<<<....................;
00:00:28 v #4233 > > ;/;;;;;;;;;;....................................................................
00:00:28 v #4234 > > │
00:00:28 v #4235 > > ................./////////////////////////////////////<<<<<....................
00:00:28 v #4236 > > ////////////;;;;<<<<............................................................
00:00:28 v #4237 > > │
00:00:28 v #4238 > > ................./////////////////////////////////////<<<<<....................
00:00:28 v #4239 > > ////////////////<<<<...............;;;;;;;;.....................................
00:00:28 v #4240 > > │
00:00:28 v #4241 > > ................>/////////////////////////////////////<<<<<....................
00:00:28 v #4242 > > ////////////////<<<<..............>//;;;;;<<<<..................................
00:00:28 v #4243 > > │
00:00:28 v #4244 > > ................>/////////////////////////////////////<<<<.....................
00:00:28 v #4245 > > ////////////////<<<<..............>///////<<<...................................
00:00:28 v #4246 > > │
00:00:28 v #4247 > > ................>////////////////////////////////////<<<<<.....................
00:00:28 v #4248 > > ///////////////<<<<<..............>///////<<<...................................
00:00:28 v #4249 > > │
00:00:28 v #4250 > > ................>////////////////////////////////////<<<<<.....................
00:00:28 v #4251 > > ///////////////<<<<<..............>///////<<<...................................
00:00:28 v #4252 > > │
00:00:28 v #4253 > > ................>////////////////////////////////////<<<<<.....................
00:00:28 v #4254 > > ///////////////<<<<<..............////////<<....................................
00:00:28 v #4255 > > │
00:00:28 v #4256 > > ................>////////////////////////////////////<<<<<....................>
00:00:28 v #4257 > > ///////////////<<<<.............................................................
00:00:28 v #4258 > > │
00:00:28 v #4259 > > ................>////////////////////////////////////<<<<<....................
00:00:28 v #4260 > > ///////////////<<<<.............................................................
00:00:28 v #4261 > > │
00:00:28 v #4262 > > ................>////////////////////////////////////<<<<.......................
00:00:28 v #4263 > > ............///<................................................................
00:00:28 v #4264 > > │
00:00:28 v #4265 > > ................>////////////////////////////////////<<<<.......................
00:00:28 v #4266 > > ................................................................................
00:00:28 v #4267 > > │
00:00:28 v #4268 > > ................////////////////////////////////////<<<<<.......................
00:00:28 v #4269 > > ................................................................................
00:00:28 v #4270 > > │
00:00:28 v #4271 > > ................////////////////////////////////////<<<<........................
00:00:28 v #4272 > > ................................................................................
00:00:28 v #4273 > > │
00:00:28 v #4274 > > .................///////////////////////////////////<<<.........................
00:00:28 v #4275 > > ................................................................................
00:00:28 v #4276 > > │
00:00:28 v #4277 > > .............................///////////////////////<<..........................
00:00:28 v #4278 > > ................................................................................
00:00:28 v #4279 > > │
00:00:28 v #4280 > > .........................................///////////<...........................
00:00:28 v #4281 > > ................................................................................
00:00:28 v #4282 > > │
00:00:28 v #4283 > > ................................................................................
00:00:28 v #4284 > > ................................................................................
00:00:28 v #4285 > > │
00:00:28 v #4286 > > ................................................................................
00:00:28 v #4287 > > ................................................................................
00:00:28 v #4288 > > │
00:00:28 v #4289 > > ................................................................................
00:00:28 v #4290 > > ................................................................................
00:00:28 v #4291 > > │
00:00:28 v #4292 > > ................................................................................
00:00:28 v #4293 > > ................................................................................
00:00:28 v #4294 > > │
00:00:28 v #4295 > > ................................................................................
00:00:28 v #4296 > > ................................................................................
00:00:28 v #4297 > > │
00:00:28 v #4298 > > ................................................................................
00:00:28 v #4299 > > ................................................................................
00:00:28 v #4300 > > │
00:00:28 v #4301 > > ................................................................................
00:00:28 v #4302 > > ................................................................................
00:00:28 v #4303 > > │
00:00:28 v #4304 > > ................................................................................
00:00:28 v #4305 > > ................................................................................
00:00:28 v #4306 > > │
00:00:28 v #4307 > > ................................................................................
00:00:28 v #4308 > > ................................................................................
00:00:28 v #4309 > > │
00:00:28 v #4310 > > ................................................................................
00:00:28 v #4311 > > ................................................................................
00:00:28 v #4312 > > │
00:00:28 v #4313 > > │
00:00:28 v #4314 > > ................................................................................
00:00:28 v #4315 > > ................................................................................
00:00:28 v #4316 > > │
00:00:28 v #4317 > > ................................................................................
00:00:28 v #4318 > > ................................................................................
00:00:28 v #4319 > > │
00:00:28 v #4320 > > ................................................................................
00:00:28 v #4321 > > ................................................................................
00:00:28 v #4322 > > │
00:00:28 v #4323 > > ................................................................................
00:00:28 v #4324 > > ................................................................................
00:00:28 v #4325 > > │
00:00:28 v #4326 > > ................................................................................
00:00:28 v #4327 > > ................................................................................
00:00:28 v #4328 > > │
00:00:28 v #4329 > > ................................................................................
00:00:28 v #4330 > > ................................................................................
00:00:28 v #4331 > > │
00:00:28 v #4332 > > ................................................................................
00:00:28 v #4333 > > ................................................................................
00:00:28 v #4334 > > │
00:00:28 v #4335 > > ................................................................................
00:00:28 v #4336 > > ................................................................................
00:00:28 v #4337 > > │
00:00:28 v #4338 > > ................................................................................
00:00:28 v #4339 > > ................................................................................
00:00:28 v #4340 > > │
00:00:28 v #4341 > > ................................................................................
00:00:28 v #4342 > > ................................................................................
00:00:28 v #4343 > > │
00:00:28 v #4344 > > ................................................................................
00:00:28 v #4345 > > ................................................................................
00:00:28 v #4346 > > │
00:00:28 v #4347 > > ................................................................................
00:00:28 v #4348 > > ................................................................................
00:00:28 v #4349 > > │
00:00:28 v #4350 > > .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................
00:00:28 v #4351 > > ................................................................................
00:00:28 v #4352 > > │
00:00:28 v #4353 > > ................;//////////////////////////////////////<<.......................
00:00:28 v #4354 > > ................................................................................
00:00:28 v #4355 > > │
00:00:28 v #4356 > > ................>//////////////////////////////////////<<<......................
00:00:28 v #4357 > > ................................................................................
00:00:28 v #4358 > > │
00:00:28 v #4359 > > ................>//////////////////////////////////////<<<......................
00:00:28 v #4360 > > ................................................................................
00:00:28 v #4361 > > │
00:00:28 v #4362 > > ................>//////////////////////////////////////<<<......................
00:00:28 v #4363 > > ................................................................................
00:00:28 v #4364 > > │
00:00:28 v #4365 > > ................>//////////////////////////////////////<<<.....................;
00:00:28 v #4366 > > ;;;;;;;;;;;;;;;;<<<.............................................................
00:00:28 v #4367 > > │
00:00:28 v #4368 > > .................//////////////////////////////////////<<<.....................
00:00:28 v #4369 > > ////////////////<<<<............................................................
00:00:28 v #4370 > > │
00:00:28 v #4371 > > .................//////////////////////////////////////<<<.....................
00:00:28 v #4372 > > ////////////////<<<<...............;;;;;;;;;<...................................
00:00:28 v #4373 > > │
00:00:28 v #4374 > > .................//////////////////////////////////////<<<.....................
00:00:28 v #4375 > > ////////////////<<<<..............;;;;;;;;;<<...................................
00:00:28 v #4376 > > │
00:00:28 v #4377 > > .................//////////////////////////////////////<<<.....................
00:00:28 v #4378 > > ////////////////<<<<..............>////////<<...................................
00:00:28 v #4379 > > │
00:00:28 v #4380 > > ................./////////////////////////////////////<<<<.....................
00:00:28 v #4381 > > ////////////////<<<<..............>////////<<...................................
00:00:28 v #4382 > > │
00:00:28 v #4383 > > ................./////////////////////////////////////<<<<.....................
00:00:28 v #4384 > > ////////////////<<<<..............>////////<<...................................
00:00:28 v #4385 > > │
00:00:28 v #4386 > > ................./////////////////////////////////////<<<<.....................
00:00:28 v #4387 > > ////////////////<<<<..............////////<<....................................
00:00:28 v #4388 > > │
00:00:28 v #4389 > > ................./////////////////////////////////////<<<<.....................
00:00:28 v #4390 > > ////////////////<<<<............................................................
00:00:28 v #4391 > > │
00:00:28 v #4392 > > ................./////////////////////////////////////<<<<.....................>
00:00:28 v #4393 > > ////////////////<<..............................................................
00:00:28 v #4394 > > │
00:00:28 v #4395 > > ................./////////////////////////////////////<<<.......................
00:00:28 v #4396 > > ................................................................................
00:00:28 v #4397 > > │
00:00:28 v #4398 > > ................./////////////////////////////////////<<<.......................
00:00:28 v #4399 > > ................................................................................
00:00:28 v #4400 > > │
00:00:28 v #4401 > > ................./////////////////////////////////////<<<.......................
00:00:28 v #4402 > > ................................................................................
00:00:28 v #4403 > > │
00:00:28 v #4404 > > ................./////////////////////////////////////<<<.......................
00:00:28 v #4405 > > ................................................................................
00:00:28 v #4406 > > │
00:00:28 v #4407 > > .................>////////////////////////////////////<<........................
00:00:28 v #4408 > > ................................................................................
00:00:28 v #4409 > > │
00:00:28 v #4410 > > ..........................////////////////////////////<<........................
00:00:28 v #4411 > > ................................................................................
00:00:28 v #4412 > > │
00:00:28 v #4413 > > ................................................//////<.........................
00:00:28 v #4414 > > ................................................................................
00:00:28 v #4415 > > │
00:00:28 v #4416 > > ................................................................................
00:00:28 v #4417 > > ................................................................................
00:00:28 v #4418 > > │
00:00:28 v #4419 > > ................................................................................
00:00:28 v #4420 > > ................................................................................
00:00:28 v #4421 > > │
00:00:28 v #4422 > > ................................................................................
00:00:28 v #4423 > > ................................................................................
00:00:28 v #4424 > > │
00:00:28 v #4425 > > ................................................................................
00:00:28 v #4426 > > ................................................................................
00:00:28 v #4427 > > │
00:00:28 v #4428 > > ................................................................................
00:00:28 v #4429 > > ................................................................................
00:00:28 v #4430 > > │
00:00:28 v #4431 > > ................................................................................
00:00:28 v #4432 > > ................................................................................
00:00:28 v #4433 > > │
00:00:28 v #4434 > > ................................................................................
00:00:28 v #4435 > > ................................................................................
00:00:28 v #4436 > > │
00:00:28 v #4437 > > ................................................................................
00:00:28 v #4438 > > ................................................................................
00:00:28 v #4439 > > │
00:00:28 v #4440 > > ................................................................................
00:00:28 v #4441 > > ................................................................................
00:00:28 v #4442 > > │
00:00:28 v #4443 > > ................................................................................
00:00:28 v #4444 > > ................................................................................
00:00:28 v #4445 > > │
00:00:28 v #4446 > > │
00:00:28 v #4447 > > ................................................................................
00:00:28 v #4448 > > ................................................................................
00:00:28 v #4449 > > │
00:00:28 v #4450 > > ................................................................................
00:00:28 v #4451 > > ................................................................................
00:00:28 v #4452 > > │
00:00:28 v #4453 > > ................................................................................
00:00:28 v #4454 > > ................................................................................
00:00:28 v #4455 > > │
00:00:28 v #4456 > > ................................................................................
00:00:28 v #4457 > > ................................................................................
00:00:28 v #4458 > > │
00:00:28 v #4459 > > ................................................................................
00:00:28 v #4460 > > ................................................................................
00:00:28 v #4461 > > │
00:00:28 v #4462 > > ................................................................................
00:00:28 v #4463 > > ................................................................................
00:00:28 v #4464 > > │
00:00:28 v #4465 > > ................................................................................
00:00:28 v #4466 > > ................................................................................
00:00:28 v #4467 > > │
00:00:28 v #4468 > > ................................................................................
00:00:28 v #4469 > > ................................................................................
00:00:28 v #4470 > > │
00:00:28 v #4471 > > ................................................................................
00:00:28 v #4472 > > ................................................................................
00:00:28 v #4473 > > │
00:00:28 v #4474 > > ................................................................................
00:00:28 v #4475 > > ................................................................................
00:00:28 v #4476 > > │
00:00:28 v #4477 > > ................................................................................
00:00:28 v #4478 > > ................................................................................
00:00:28 v #4479 > > │
00:00:28 v #4480 > > ..............................................;;;;;;;;;<........................
00:00:28 v #4481 > > ................................................................................
00:00:28 v #4482 > > │
00:00:28 v #4483 > > .........................;;;;;;;;;;;;;;;;;;;;;/////////<........................
00:00:28 v #4484 > > ................................................................................
00:00:28 v #4485 > > │
00:00:28 v #4486 > > ................;;;;;;;;;//////////////////////////////<........................
00:00:28 v #4487 > > ................................................................................
00:00:28 v #4488 > > │
00:00:28 v #4489 > > ................///////////////////////////////////////<........................
00:00:28 v #4490 > > ................................................................................
00:00:28 v #4491 > > │
00:00:28 v #4492 > > ................>//////////////////////////////////////<<.......................
00:00:28 v #4493 > > ................................................................................
00:00:28 v #4494 > > │
00:00:28 v #4495 > > ................>//////////////////////////////////////<<.......................
00:00:28 v #4496 > > ................................................................................
00:00:28 v #4497 > > │
00:00:28 v #4498 > > ................>//////////////////////////////////////<<.......................
00:00:28 v #4499 > > ..;;;;;;;;;;;;;;<<<.............................................................
00:00:28 v #4500 > > │
00:00:28 v #4501 > > ................>//////////////////////////////////////<<......................;
00:00:28 v #4502 > > ;;//////////////<<<.............................................................
00:00:28 v #4503 > > │
00:00:28 v #4504 > > .................//////////////////////////////////////<<......................
00:00:28 v #4505 > > ////////////////<<<....................;;;;<<...................................
00:00:28 v #4506 > > │
00:00:28 v #4507 > > .................//////////////////////////////////////<<......................
00:00:28 v #4508 > > ////////////////<<<...............;;;;;////<<...................................
00:00:28 v #4509 > > │
00:00:28 v #4510 > > .................//////////////////////////////////////<<......................>
00:00:28 v #4511 > > ////////////////<<<...............>////////<<...................................
00:00:28 v #4512 > > │
00:00:28 v #4513 > > .................>//////////////////////////////////////<......................>
00:00:28 v #4514 > > ////////////////<<<................////////<<...................................
00:00:28 v #4515 > > │
00:00:28 v #4516 > > .................>//////////////////////////////////////<......................>
00:00:28 v #4517 > > /////////////////<<<...............////////<<...................................
00:00:28 v #4518 > > │
00:00:28 v #4519 > > .................>//////////////////////////////////////<......................>
00:00:28 v #4520 > > /////////////////<<<.............../////////....................................
00:00:28 v #4521 > > │
00:00:28 v #4522 > > .................>//////////////////////////////////////<.......................
00:00:28 v #4523 > > /////////////////<<<............................................................
00:00:28 v #4524 > > │
00:00:28 v #4525 > > ..................//////////////////////////////////////<.......................
00:00:28 v #4526 > > /////////////////<<.............................................................
00:00:28 v #4527 > > │
00:00:28 v #4528 > > ..................//////////////////////////////////////<<......................
00:00:28 v #4529 > > ................................................................................
00:00:28 v #4530 > > │
00:00:28 v #4531 > > ..................//////////////////////////////////////<<......................
00:00:28 v #4532 > > ................................................................................
00:00:28 v #4533 > > │
00:00:28 v #4534 > > ..................//////////////////////////////////////<<......................
00:00:28 v #4535 > > ................................................................................
00:00:28 v #4536 > > │
00:00:28 v #4537 > > ..................>/////////////////////////////////////<<......................
00:00:28 v #4538 > > ................................................................................
00:00:28 v #4539 > > │
00:00:28 v #4540 > > ..................>/////////////////////////////////////<.......................
00:00:28 v #4541 > > ................................................................................
00:00:28 v #4542 > > │
00:00:28 v #4543 > > ..................//////////////////////////////////////<.......................
00:00:28 v #4544 > > ................................................................................
00:00:28 v #4545 > > │
00:00:28 v #4546 > > ................................................................................
00:00:28 v #4547 > > ................................................................................
00:00:28 v #4548 > > │
00:00:28 v #4549 > > ................................................................................
00:00:28 v #4550 > > ................................................................................
00:00:28 v #4551 > > │
00:00:28 v #4552 > > ................................................................................
00:00:28 v #4553 > > ................................................................................
00:00:28 v #4554 > > │
00:00:28 v #4555 > > ................................................................................
00:00:28 v #4556 > > ................................................................................
00:00:28 v #4557 > > │
00:00:28 v #4558 > > ................................................................................
00:00:28 v #4559 > > ................................................................................
00:00:28 v #4560 > > │
00:00:28 v #4561 > > ................................................................................
00:00:28 v #4562 > > ................................................................................
00:00:28 v #4563 > > │
00:00:28 v #4564 > > ................................................................................
00:00:28 v #4565 > > ................................................................................
00:00:28 v #4566 > > │
00:00:28 v #4567 > > ................................................................................
00:00:28 v #4568 > > ................................................................................
00:00:28 v #4569 > > │
00:00:28 v #4570 > > ................................................................................
00:00:28 v #4571 > > ................................................................................
00:00:28 v #4572 > > │
00:00:28 v #4573 > > ................................................................................
00:00:28 v #4574 > > ................................................................................
00:00:28 v #4575 > > │
00:00:28 v #4576 > > ................................................................................
00:00:28 v #4577 > > ................................................................................
00:00:28 v #4578 > > │
00:00:28 v #4579 > > │
00:00:28 v #4580 > > ................................................................................
00:00:28 v #4581 > > ................................................................................
00:00:28 v #4582 > > │
00:00:28 v #4583 > > ................................................................................
00:00:28 v #4584 > > ................................................................................
00:00:28 v #4585 > > │
00:00:28 v #4586 > > ................................................................................
00:00:28 v #4587 > > ................................................................................
00:00:28 v #4588 > > │
00:00:28 v #4589 > > ................................................................................
00:00:28 v #4590 > > ................................................................................
00:00:28 v #4591 > > │
00:00:28 v #4592 > > ................................................................................
00:00:28 v #4593 > > ................................................................................
00:00:28 v #4594 > > │
00:00:28 v #4595 > > ................................................................................
00:00:28 v #4596 > > ................................................................................
00:00:28 v #4597 > > │
00:00:28 v #4598 > > ................................................................................
00:00:28 v #4599 > > ................................................................................
00:00:28 v #4600 > > │
00:00:28 v #4601 > > ................................................................................
00:00:28 v #4602 > > ................................................................................
00:00:28 v #4603 > > │
00:00:28 v #4604 > > ................................................................................
00:00:28 v #4605 > > ................................................................................
00:00:28 v #4606 > > │
00:00:28 v #4607 > > ................................................................................
00:00:28 v #4608 > > ................................................................................
00:00:28 v #4609 > > │
00:00:28 v #4610 > > ......................................................<.........................
00:00:28 v #4611 > > ................................................................................
00:00:28 v #4612 > > │
00:00:28 v #4613 > > .........................................;;;;;;;;;;;;;<.........................
00:00:28 v #4614 > > ................................................................................
00:00:28 v #4615 > > │
00:00:28 v #4616 > > ...........................;;;;;;;;;;;;;;//////////////<........................
00:00:28 v #4617 > > ................................................................................
00:00:28 v #4618 > > │
00:00:28 v #4619 > > ...............;;;;;;;;;;;;;///////////////////////////<........................
00:00:28 v #4620 > > ................................................................................
00:00:28 v #4621 > > │
00:00:28 v #4622 > > ...............>///////////////////////////////////////<........................
00:00:28 v #4623 > > ................................................................................
00:00:28 v #4624 > > │
00:00:28 v #4625 > > ................///////////////////////////////////////<........................
00:00:28 v #4626 > > ................................................................................
00:00:28 v #4627 > > │
00:00:28 v #4628 > > ................///////////////////////////////////////<<.......................
00:00:28 v #4629 > > ................................................................................
00:00:28 v #4630 > > │
00:00:28 v #4631 > > ................>///////////////////////////////////////<.......................
00:00:28 v #4632 > > ....;;;;;;;;;;;;<<..............................................................
00:00:28 v #4633 > > │
00:00:28 v #4634 > > ................>///////////////////////////////////////<......................;
00:00:28 v #4635 > > ;;;;////////////<<..............................................................
00:00:28 v #4636 > > │
00:00:28 v #4637 > > .................///////////////////////////////////////<......................
00:00:28 v #4638 > > ////////////////<<<....................;;;<<....................................
00:00:28 v #4639 > > │
00:00:28 v #4640 > > .................///////////////////////////////////////<......................
00:00:28 v #4641 > > /////////////////<<...............;;;;;////<<...................................
00:00:28 v #4642 > > │
00:00:28 v #4643 > > .................>//////////////////////////////////////<<.....................>
00:00:28 v #4644 > > /////////////////<<...............>////////<<...................................
00:00:28 v #4645 > > │
00:00:28 v #4646 > > .................>///////////////////////////////////////<.....................>
00:00:28 v #4647 > > /////////////////<<................////////<<...................................
00:00:28 v #4648 > > │
00:00:28 v #4649 > > ..................///////////////////////////////////////<......................
00:00:28 v #4650 > > /////////////////<<................////////<<...................................
00:00:28 v #4651 > > │
00:00:28 v #4652 > > ..................///////////////////////////////////////<......................
00:00:28 v #4653 > > /////////////////<<<...............>////////....................................
00:00:28 v #4654 > > │
00:00:28 v #4655 > > ..................>//////////////////////////////////////<......................
00:00:28 v #4656 > > >/////////////////<<............................................................
00:00:28 v #4657 > > │
00:00:28 v #4658 > > ..................>///////////////////////////////////////<.....................
00:00:28 v #4659 > > >/////////////////<.............................................................
00:00:28 v #4660 > > │
00:00:28 v #4661 > > ...................///////////////////////////////////////<.....................
00:00:28 v #4662 > > ................................................................................
00:00:28 v #4663 > > │
00:00:28 v #4664 > > ...................///////////////////////////////////////<.....................
00:00:28 v #4665 > > ................................................................................
00:00:28 v #4666 > > │
00:00:28 v #4667 > > ...................>//////////////////////////////////////<.....................
00:00:28 v #4668 > > ................................................................................
00:00:28 v #4669 > > │
00:00:28 v #4670 > > ...................>//////////////////////////////////////<.....................
00:00:28 v #4671 > > ................................................................................
00:00:28 v #4672 > > │
00:00:28 v #4673 > > ...................>///////////////////////////////////////<....................
00:00:28 v #4674 > > ................................................................................
00:00:28 v #4675 > > │
00:00:28 v #4676 > > ....................////////////////////////////................................
00:00:28 v #4677 > > ................................................................................
00:00:28 v #4678 > > │
00:00:28 v #4679 > > ................................................................................
00:00:28 v #4680 > > ................................................................................
00:00:28 v #4681 > > │
00:00:28 v #4682 > > ................................................................................
00:00:28 v #4683 > > ................................................................................
00:00:28 v #4684 > > │
00:00:28 v #4685 > > ................................................................................
00:00:28 v #4686 > > ................................................................................
00:00:28 v #4687 > > │
00:00:28 v #4688 > > ................................................................................
00:00:28 v #4689 > > ................................................................................
00:00:28 v #4690 > > │
00:00:28 v #4691 > > ................................................................................
00:00:28 v #4692 > > ................................................................................
00:00:28 v #4693 > > │
00:00:28 v #4694 > > ................................................................................
00:00:28 v #4695 > > ................................................................................
00:00:28 v #4696 > > │
00:00:28 v #4697 > > ................................................................................
00:00:28 v #4698 > > ................................................................................
00:00:28 v #4699 > > │
00:00:28 v #4700 > > ................................................................................
00:00:28 v #4701 > > ................................................................................
00:00:28 v #4702 > > │
00:00:28 v #4703 > > ................................................................................
00:00:28 v #4704 > > ................................................................................
00:00:28 v #4705 > > │
00:00:28 v #4706 > > ................................................................................
00:00:28 v #4707 > > ................................................................................
00:00:28 v #4708 > > │
00:00:28 v #4709 > > ................................................................................
00:00:28 v #4710 > > ................................................................................
00:00:28 v #4711 > > │
00:00:28 v #4712 > > │
00:00:28 v #4713 > > ................................................................................
00:00:28 v #4714 > > ................................................................................
00:00:28 v #4715 > > │
00:00:28 v #4716 > > ................................................................................
00:00:28 v #4717 > > ................................................................................
00:00:28 v #4718 > > │
00:00:28 v #4719 > > ................................................................................
00:00:28 v #4720 > > ................................................................................
00:00:28 v #4721 > > │
00:00:28 v #4722 > > ................................................................................
00:00:28 v #4723 > > ................................................................................
00:00:28 v #4724 > > │
00:00:28 v #4725 > > ................................................................................
00:00:28 v #4726 > > ................................................................................
00:00:28 v #4727 > > │
00:00:28 v #4728 > > ................................................................................
00:00:28 v #4729 > > ................................................................................
00:00:28 v #4730 > > │
00:00:28 v #4731 > > ................................................................................
00:00:28 v #4732 > > ................................................................................
00:00:28 v #4733 > > │
00:00:28 v #4734 > > ................................................................................
00:00:28 v #4735 > > ................................................................................
00:00:28 v #4736 > > │
00:00:28 v #4737 > > ................................................................................
00:00:28 v #4738 > > ................................................................................
00:00:28 v #4739 > > │
00:00:28 v #4740 > > ................................................................................
00:00:28 v #4741 > > ................................................................................
00:00:28 v #4742 > > │
00:00:28 v #4743 > > .................................................;;;;;<.........................
00:00:28 v #4744 > > ................................................................................
00:00:28 v #4745 > > │
00:00:28 v #4746 > > .......................................;;;;;;;;;;/////<.........................
00:00:28 v #4747 > > ................................................................................
00:00:28 v #4748 > > │
00:00:28 v #4749 > > .............................;;;;;;;;;;///////////////<<........................
00:00:28 v #4750 > > ................................................................................
00:00:28 v #4751 > > │
00:00:28 v #4752 > > ...................;;;;;;;;;;//////////////////////////<........................
00:00:28 v #4753 > > ................................................................................
00:00:28 v #4754 > > │
00:00:28 v #4755 > > ...............;;;;////////////////////////////////////<........................
00:00:28 v #4756 > > ................................................................................
00:00:28 v #4757 > > │
00:00:28 v #4758 > > ...............>///////////////////////////////////////<<.......................
00:00:28 v #4759 > > ................................................................................
00:00:28 v #4760 > > │
00:00:28 v #4761 > > ...............>////////////////////////////////////////<.......................
00:00:28 v #4762 > > ................<...............................................................
00:00:28 v #4763 > > │
00:00:28 v #4764 > > ................////////////////////////////////////////<.......................
00:00:28 v #4765 > > .....;;;;;;;;;;;<...............................................................
00:00:28 v #4766 > > │
00:00:28 v #4767 > > ................>///////////////////////////////////////<<....................;;
00:00:28 v #4768 > > ;;;;;///////////<<..............................................................
00:00:28 v #4769 > > │
00:00:28 v #4770 > > .................////////////////////////////////////////<.....................
00:00:28 v #4771 > > ////////////////<<.....................;;;<<....................................
00:00:28 v #4772 > > │
00:00:28 v #4773 > > .................>///////////////////////////////////////<.....................
00:00:28 v #4774 > > /////////////////<................;;;;;////<....................................
00:00:28 v #4775 > > │
00:00:28 v #4776 > > .................>///////////////////////////////////////<<....................>
00:00:28 v #4777 > > /////////////////<<...............>////////<<...................................
00:00:28 v #4778 > > │
00:00:28 v #4779 > > ..................////////////////////////////////////////<.....................
00:00:28 v #4780 > > /////////////////<<................////////<<...................................
00:00:28 v #4781 > > │
00:00:28 v #4782 > > ..................>///////////////////////////////////////<.....................
00:00:28 v #4783 > > //////////////////<................>////////<...................................
00:00:28 v #4784 > > │
00:00:28 v #4785 > > ..................>///////////////////////////////////////<<....................
00:00:28 v #4786 > > >/////////////////<<................//////......................................
00:00:28 v #4787 > > │
00:00:28 v #4788 > > ...................////////////////////////////////////////<....................
00:00:28 v #4789 > > .//////////////////<............................................................
00:00:28 v #4790 > > │
00:00:28 v #4791 > > ...................>///////////////////////////////////////<....................
00:00:28 v #4792 > > .>///////////////...............................................................
00:00:28 v #4793 > > │
00:00:28 v #4794 > > ...................>///////////////////////////////////////<<...................
00:00:28 v #4795 > > .///............................................................................
00:00:28 v #4796 > > │
00:00:28 v #4797 > > ....................////////////////////////////////////////<...................
00:00:28 v #4798 > > ................................................................................
00:00:28 v #4799 > > │
00:00:28 v #4800 > > ....................>///////////////////////////////////////<...................
00:00:28 v #4801 > > ................................................................................
00:00:28 v #4802 > > │
00:00:28 v #4803 > > ....................>///////////////////////////////////////<<..................
00:00:28 v #4804 > > ................................................................................
00:00:28 v #4805 > > │
00:00:28 v #4806 > > ...................../////////////////////////////////////......................
00:00:28 v #4807 > > ................................................................................
00:00:28 v #4808 > > │
00:00:28 v #4809 > > .....................>/////////////////////.....................................
00:00:28 v #4810 > > ................................................................................
00:00:28 v #4811 > > │
00:00:28 v #4812 > > ......................///////...................................................
00:00:28 v #4813 > > ................................................................................
00:00:28 v #4814 > > │
00:00:28 v #4815 > > ................................................................................
00:00:28 v #4816 > > ................................................................................
00:00:28 v #4817 > > │
00:00:28 v #4818 > > ................................................................................
00:00:28 v #4819 > > ................................................................................
00:00:28 v #4820 > > │
00:00:28 v #4821 > > ................................................................................
00:00:28 v #4822 > > ................................................................................
00:00:28 v #4823 > > │
00:00:28 v #4824 > > ................................................................................
00:00:28 v #4825 > > ................................................................................
00:00:28 v #4826 > > │
00:00:28 v #4827 > > ................................................................................
00:00:28 v #4828 > > ................................................................................
00:00:28 v #4829 > > │
00:00:28 v #4830 > > ................................................................................
00:00:28 v #4831 > > ................................................................................
00:00:28 v #4832 > > │
00:00:28 v #4833 > > ................................................................................
00:00:28 v #4834 > > ................................................................................
00:00:28 v #4835 > > │
00:00:28 v #4836 > > ................................................................................
00:00:28 v #4837 > > ................................................................................
00:00:28 v #4838 > > │
00:00:28 v #4839 > > ................................................................................
00:00:28 v #4840 > > ................................................................................
00:00:28 v #4841 > > │
00:00:28 v #4842 > > ................................................................................
00:00:28 v #4843 > > ................................................................................
00:00:28 v #4844 > > │
00:00:28 v #4845 > > │
00:00:28 v #4846 > > ................................................................................
00:00:28 v #4847 > > ................................................................................
00:00:28 v #4848 > > │
00:00:28 v #4849 > > ................................................................................
00:00:28 v #4850 > > ................................................................................
00:00:28 v #4851 > > │
00:00:28 v #4852 > > ................................................................................
00:00:28 v #4853 > > ................................................................................
00:00:28 v #4854 > > │
00:00:28 v #4855 > > ................................................................................
00:00:28 v #4856 > > ................................................................................
00:00:28 v #4857 > > │
00:00:28 v #4858 > > ................................................................................
00:00:28 v #4859 > > ................................................................................
00:00:28 v #4860 > > │
00:00:28 v #4861 > > ................................................................................
00:00:28 v #4862 > > ................................................................................
00:00:28 v #4863 > > │
00:00:28 v #4864 > > ................................................................................
00:00:28 v #4865 > > ................................................................................
00:00:28 v #4866 > > │
00:00:28 v #4867 > > ................................................................................
00:00:28 v #4868 > > ................................................................................
00:00:28 v #4869 > > │
00:00:28 v #4870 > > ................................................................................
00:00:28 v #4871 > > ................................................................................
00:00:28 v #4872 > > │
00:00:28 v #4873 > > .....................................................<..........................
00:00:28 v #4874 > > ................................................................................
00:00:28 v #4875 > > │
00:00:28 v #4876 > > ..............................................;;;;;;;<<.........................
00:00:28 v #4877 > > ................................................................................
00:00:28 v #4878 > > │
00:00:28 v #4879 > > .....................................;;;;;;;;;////////<.........................
00:00:28 v #4880 > > ................................................................................
00:00:28 v #4881 > > │
00:00:28 v #4882 > > .............................;;;;;;;;;////////////////<<........................
00:00:28 v #4883 > > ................................................................................
00:00:28 v #4884 > > │
00:00:28 v #4885 > > ......................;;;;;;;//////////////////////////<........................
00:00:28 v #4886 > > ................................................................................
00:00:28 v #4887 > > │
00:00:28 v #4888 > > ...............;;;;;;;/////////////////////////////////<........................
00:00:28 v #4889 > > ................................................................................
00:00:28 v #4890 > > │
00:00:28 v #4891 > > .............../////////////////////////////////////////<.......................
00:00:28 v #4892 > > ................................................................................
00:00:28 v #4893 > > │
00:00:28 v #4894 > > ...............>////////////////////////////////////////<.......................
00:00:28 v #4895 > > .............;;;<...............................................................
00:00:28 v #4896 > > │
00:00:28 v #4897 > > ................/////////////////////////////////////////<......................
00:00:28 v #4898 > > .....;;;;;;;;///<...............................................................
00:00:28 v #4899 > > │
00:00:28 v #4900 > > ................>////////////////////////////////////////<....................;;
00:00:28 v #4901 > > ;;;;;///////////<<..............................................................
00:00:28 v #4902 > > │
00:00:28 v #4903 > > ................./////////////////////////////////////////<...................>
00:00:28 v #4904 > > /////////////////<.....................;;;<<....................................
00:00:28 v #4905 > > │
00:00:28 v #4906 > > .................>////////////////////////////////////////<....................
00:00:28 v #4907 > > /////////////////<<...............;;;;;////<....................................
00:00:28 v #4908 > > │
00:00:28 v #4909 > > ................../////////////////////////////////////////<...................>
00:00:28 v #4910 > > //////////////////<...............>////////<<...................................
00:00:28 v #4911 > > │
00:00:28 v #4912 > > ..................>////////////////////////////////////////<....................
00:00:28 v #4913 > > //////////////////<................/////////<...................................
00:00:28 v #4914 > > │
00:00:28 v #4915 > > ..................>////////////////////////////////////////<<...................
00:00:28 v #4916 > > >//////////////////<...............>////////<...................................
00:00:28 v #4917 > > │
00:00:28 v #4918 > > ...................>////////////////////////////////////////<...................
00:00:28 v #4919 > > .//////////////////<................/////=......................................
00:00:28 v #4920 > > │
00:00:28 v #4921 > > ...................>////////////////////////////////////////<<..................
00:00:28 v #4922 > > .>/////////////////<<...........................................................
00:00:28 v #4923 > > │
00:00:28 v #4924 > > ....................>////////////////////////////////////////<..................
00:00:28 v #4925 > > ../////////////.................................................................
00:00:28 v #4926 > > │
00:00:28 v #4927 > > ....................>////////////////////////////////////////<<.................
00:00:28 v #4928 > > ..>///..........................................................................
00:00:28 v #4929 > > │
00:00:28 v #4930 > > ...................../////////////////////////////////////////<.................
00:00:28 v #4931 > > ................................................................................
00:00:28 v #4932 > > │
00:00:28 v #4933 > > .....................>////////////////////////////////////////<.................
00:00:28 v #4934 > > ................................................................................
00:00:28 v #4935 > > │
00:00:28 v #4936 > > ......................///////////////////////////////////////...................
00:00:28 v #4937 > > ................................................................................
00:00:28 v #4938 > > │
00:00:28 v #4939 > > ......................>/////////////////////////////............................
00:00:28 v #4940 > > ................................................................................
00:00:28 v #4941 > > │
00:00:28 v #4942 > > .......................////////////////////.....................................
00:00:28 v #4943 > > ................................................................................
00:00:28 v #4944 > > │
00:00:28 v #4945 > > .......................>//////////..............................................
00:00:28 v #4946 > > ................................................................................
00:00:28 v #4947 > > │
00:00:28 v #4948 > > ................................................................................
00:00:28 v #4949 > > ................................................................................
00:00:28 v #4950 > > │
00:00:28 v #4951 > > ................................................................................
00:00:28 v #4952 > > ................................................................................
00:00:28 v #4953 > > │
00:00:28 v #4954 > > ................................................................................
00:00:28 v #4955 > > ................................................................................
00:00:28 v #4956 > > │
00:00:28 v #4957 > > ................................................................................
00:00:28 v #4958 > > ................................................................................
00:00:28 v #4959 > > │
00:00:28 v #4960 > > ................................................................................
00:00:28 v #4961 > > ................................................................................
00:00:28 v #4962 > > │
00:00:28 v #4963 > > ................................................................................
00:00:28 v #4964 > > ................................................................................
00:00:28 v #4965 > > │
00:00:28 v #4966 > > ................................................................................
00:00:28 v #4967 > > ................................................................................
00:00:28 v #4968 > > │
00:00:28 v #4969 > > ................................................................................
00:00:28 v #4970 > > ................................................................................
00:00:28 v #4971 > > │
00:00:28 v #4972 > > ................................................................................
00:00:28 v #4973 > > ................................................................................
00:00:28 v #4974 > > │
00:00:28 v #4975 > > ................................................................................
00:00:28 v #4976 > > ................................................................................
00:00:28 v #4977 > > │
00:00:28 v #4978 > > │
00:00:28 v #4979 > > ................................................................................
00:00:28 v #4980 > > ................................................................................
00:00:28 v #4981 > > │
00:00:28 v #4982 > > ................................................................................
00:00:28 v #4983 > > ................................................................................
00:00:28 v #4984 > > │
00:00:28 v #4985 > > ................................................................................
00:00:28 v #4986 > > ................................................................................
00:00:28 v #4987 > > │
00:00:28 v #4988 > > ................................................................................
00:00:28 v #4989 > > ................................................................................
00:00:28 v #4990 > > │
00:00:28 v #4991 > > ................................................................................
00:00:28 v #4992 > > ................................................................................
00:00:28 v #4993 > > │
00:00:28 v #4994 > > ................................................................................
00:00:28 v #4995 > > ................................................................................
00:00:28 v #4996 > > │
00:00:28 v #4997 > > ................................................................................
00:00:28 v #4998 > > ................................................................................
00:00:28 v #4999 > > │
00:00:28 v #5000 > > ................................................................................
00:00:28 v #5001 > > ................................................................................
00:00:28 v #5002 > > │
00:00:28 v #5003 > > ................................................................................
00:00:28 v #5004 > > ................................................................................
00:00:28 v #5005 > > │
00:00:28 v #5006 > > ..................................................;;;<..........................
00:00:28 v #5007 > > ................................................................................
00:00:28 v #5008 > > │
00:00:28 v #5009 > > ............................................;;;;;;///<..........................
00:00:28 v #5010 > > ................................................................................
00:00:28 v #5011 > > │
00:00:28 v #5012 > > .....................................;;;;;;;/////////<<.........................
00:00:28 v #5013 > > ................................................................................
00:00:28 v #5014 > > │
00:00:28 v #5015 > > ..............................;;;;;;;/////////////////<<........................
00:00:28 v #5016 > > ................................................................................
00:00:28 v #5017 > > │
00:00:28 v #5018 > > .......................;;;;;;;/////////////////////////<........................
00:00:28 v #5019 > > ................................................................................
00:00:28 v #5020 > > │
00:00:28 v #5021 > > .................;;;;;;;///////////////////////////////<<.......................
00:00:28 v #5022 > > ................................................................................
00:00:28 v #5023 > > │
00:00:28 v #5024 > > ..............;;;///////////////////////////////////////<.......................
00:00:28 v #5025 > > ................................................................................
00:00:28 v #5026 > > │
00:00:28 v #5027 > > ...............//////////////////////////////////////////<......................
00:00:28 v #5028 > > ............;;;<................................................................
00:00:28 v #5029 > > │
00:00:28 v #5030 > > ...............>/////////////////////////////////////////<<.....................
00:00:28 v #5031 > > .....;;;;;;;////<...............................................................
00:00:28 v #5032 > > │
00:00:28 v #5033 > > ................>/////////////////////////////////////////<....................;
00:00:28 v #5034 > > ;;;;;///////////<<..............................................................
00:00:28 v #5035 > > │
00:00:28 v #5036 > > ................./////////////////////////////////////////<<..................;
00:00:28 v #5037 > > /////////////////<.....................;;;<<....................................
00:00:28 v #5038 > > │
00:00:28 v #5039 > > .................>/////////////////////////////////////////<...................
00:00:28 v #5040 > > /////////////////<<...............;;;;;////<....................................
00:00:28 v #5041 > > │
00:00:28 v #5042 > > ..................//////////////////////////////////////////<...................
00:00:28 v #5043 > > //////////////////<<..............>////////<<...................................
00:00:28 v #5044 > > │
00:00:28 v #5045 > > ..................>/////////////////////////////////////////<<..................
00:00:28 v #5046 > > >//////////////////<...............>////////<...................................
00:00:28 v #5047 > > │
00:00:28 v #5048 > > ...................>/////////////////////////////////////////<..................
00:00:28 v #5049 > > .//////////////////<<...............////////<<..................................
00:00:28 v #5050 > > │
00:00:28 v #5051 > > ..................../////////////////////////////////////////<<.................
00:00:28 v #5052 > > .>//////////////////<...............>////.......................................
00:00:28 v #5053 > > │
00:00:28 v #5054 > > ....................>/////////////////////////////////////////<.................
00:00:28 v #5055 > > ..///////////////////...........................................................
00:00:28 v #5056 > > │
00:00:28 v #5057 > > ...................../////////////////////////////////////////<<................
00:00:28 v #5058 > > ..>////////////.................................................................
00:00:28 v #5059 > > │
00:00:28 v #5060 > > .....................>/////////////////////////////////////////<................
00:00:28 v #5061 > > ...>////........................................................................
00:00:28 v #5062 > > │
00:00:28 v #5063 > > ......................>/////////////////////////////////////////<...............
00:00:28 v #5064 > > ................................................................................
00:00:28 v #5065 > > │
00:00:28 v #5066 > > ......................./////////////////////////////////////////................
00:00:28 v #5067 > > ................................................................................
00:00:28 v #5068 > > │
00:00:28 v #5069 > > .......................>/////////////////////////////////.......................
00:00:28 v #5070 > > ................................................................................
00:00:28 v #5071 > > │
00:00:28 v #5072 > > ........................//////////////////////////..............................
00:00:28 v #5073 > > ................................................................................
00:00:28 v #5074 > > │
00:00:28 v #5075 > > ........................>//////////////////.....................................
00:00:28 v #5076 > > ................................................................................
00:00:28 v #5077 > > │
00:00:28 v #5078 > > .........................>//////////............................................
00:00:28 v #5079 > > ................................................................................
00:00:28 v #5080 > > │
00:00:28 v #5081 > > ..........................////..................................................
00:00:28 v #5082 > > ................................................................................
00:00:28 v #5083 > > │
00:00:28 v #5084 > > ................................................................................
00:00:28 v #5085 > > ................................................................................
00:00:28 v #5086 > > │
00:00:28 v #5087 > > ................................................................................
00:00:28 v #5088 > > ................................................................................
00:00:28 v #5089 > > │
00:00:28 v #5090 > > ................................................................................
00:00:28 v #5091 > > ................................................................................
00:00:28 v #5092 > > │
00:00:28 v #5093 > > ................................................................................
00:00:28 v #5094 > > ................................................................................
00:00:28 v #5095 > > │
00:00:28 v #5096 > > ................................................................................
00:00:28 v #5097 > > ................................................................................
00:00:28 v #5098 > > │
00:00:28 v #5099 > > ................................................................................
00:00:28 v #5100 > > ................................................................................
00:00:28 v #5101 > > │
00:00:28 v #5102 > > ................................................................................
00:00:28 v #5103 > > ................................................................................
00:00:28 v #5104 > > │
00:00:28 v #5105 > > ................................................................................
00:00:28 v #5106 > > ................................................................................
00:00:28 v #5107 > > │
00:00:28 v #5108 > > ................................................................................
00:00:28 v #5109 > > ................................................................................
00:00:28 v #5110 > > │
00:00:28 v #5111 > > │
00:00:28 v #5112 > > ................................................................................
00:00:28 v #5113 > > ................................................................................
00:00:28 v #5114 > > │
00:00:28 v #5115 > > ................................................................................
00:00:28 v #5116 > > ................................................................................
00:00:28 v #5117 > > │
00:00:28 v #5118 > > ................................................................................
00:00:28 v #5119 > > ................................................................................
00:00:28 v #5120 > > │
00:00:28 v #5121 > > ................................................................................
00:00:28 v #5122 > > ................................................................................
00:00:28 v #5123 > > │
00:00:28 v #5124 > > ................................................................................
00:00:28 v #5125 > > ................................................................................
00:00:28 v #5126 > > │
00:00:28 v #5127 > > ................................................................................
00:00:28 v #5128 > > ................................................................................
00:00:28 v #5129 > > │
00:00:28 v #5130 > > ................................................................................
00:00:28 v #5131 > > ................................................................................
00:00:28 v #5132 > > │
00:00:28 v #5133 > > ................................................................................
00:00:28 v #5134 > > ................................................................................
00:00:28 v #5135 > > │
00:00:28 v #5136 > > ................................................................................
00:00:28 v #5137 > > ................................................................................
00:00:28 v #5138 > > │
00:00:28 v #5139 > > ................................................;;;/;...........................
00:00:28 v #5140 > > ................................................................................
00:00:28 v #5141 > > │
00:00:28 v #5142 > > ..........................................;;;;/;//////..........................
00:00:28 v #5143 > > ................................................................................
00:00:28 v #5144 > > │
00:00:28 v #5145 > > ....................................;;;;///////////////.........................
00:00:28 v #5146 > > ................................................................................
00:00:28 v #5147 > > │
00:00:28 v #5148 > > ...............................;;/;;///////////////////<........................
00:00:28 v #5149 > > ................................................................................
00:00:28 v #5150 > > │
00:00:28 v #5151 > > .........................;;;;/;/////////////////////////........................
00:00:28 v #5152 > > ................................................................................
00:00:28 v #5153 > > │
00:00:28 v #5154 > > ...................;;;;//;///////////////////////////////.......................
00:00:28 v #5155 > > ................................................................................
00:00:28 v #5156 > > │
00:00:28 v #5157 > > ..............;;/;;//////////////////////////////////////<......................
00:00:28 v #5158 > > ................................................................................
00:00:28 v #5159 > > │
00:00:28 v #5160 > > ..............>>//////////////////////////////////////////......................
00:00:28 v #5161 > > ...........;;;//................................................................
00:00:28 v #5162 > > │
00:00:28 v #5163 > > ...............>>//////////////////////////////////////////.....................
00:00:28 v #5164 > > ......;;/////////...............................................................
00:00:28 v #5165 > > │
00:00:28 v #5166 > > ................>///////////////////////////////////////////....................
00:00:28 v #5167 > > ;;;///////////////..............................................................
00:00:28 v #5168 > > │
00:00:28 v #5169 > > .................>//////////////////////////////////////////<.................;>
00:00:28 v #5170 > > //////////////////<...................;;///<....................................
00:00:28 v #5171 > > │
00:00:28 v #5172 > > .................>>//////////////////////////////////////////..................>
00:00:28 v #5173 > > ///////////////////...............;;;;//////....................................
00:00:28 v #5174 > > │
00:00:28 v #5175 > > ..................>>//////////////////////////////////////////..................
00:00:28 v #5176 > > >///////////////////...............>/////////...................................
00:00:28 v #5177 > > │
00:00:28 v #5178 > > ...................>//////////////////////////////////////////<.................
00:00:28 v #5179 > > >>///////////////////..............>>////////<..................................
00:00:28 v #5180 > > │
00:00:28 v #5181 > > ....................>//////////////////////////////////////////.................
00:00:28 v #5182 > > .>>//////////////////...............>>////////..................................
00:00:28 v #5183 > > │
00:00:28 v #5184 > > ....................>>//////////////////////////////////////////................
00:00:28 v #5185 > > ..>///////////////////...............>///.......................................
00:00:28 v #5186 > > │
00:00:28 v #5187 > > .....................>///////////////////////////////////////////...............
00:00:28 v #5188 > > ...>////////////////............................................................
00:00:28 v #5189 > > │
00:00:28 v #5190 > > ......................>//////////////////////////////////////////<..............
00:00:28 v #5191 > > ...>>/////////..................................................................
00:00:28 v #5192 > > │
00:00:28 v #5193 > > ......................>>//////////////////////////////////////////..............
00:00:28 v #5194 > > ....>////.......................................................................
00:00:28 v #5195 > > │
00:00:28 v #5196 > > .......................>>/////////////////////////////////////////..............
00:00:28 v #5197 > > ................................................................................
00:00:28 v #5198 > > │
00:00:28 v #5199 > > ........................>>//////////////////////////////////....................
00:00:28 v #5200 > > ................................................................................
00:00:28 v #5201 > > │
00:00:28 v #5202 > > .........................>////////////////////////////..........................
00:00:28 v #5203 > > ................................................................................
00:00:28 v #5204 > > │
00:00:28 v #5205 > > .........................>>//////////////////////...............................
00:00:28 v #5206 > > ................................................................................
00:00:28 v #5207 > > │
00:00:28 v #5208 > > ..........................>>////////////////....................................
00:00:28 v #5209 > > ................................................................................
00:00:28 v #5210 > > │
00:00:28 v #5211 > > ...........................>///////////.........................................
00:00:28 v #5212 > > ................................................................................
00:00:28 v #5213 > > │
00:00:28 v #5214 > > ............................>////...............................................
00:00:28 v #5215 > > ................................................................................
00:00:28 v #5216 > > │
00:00:28 v #5217 > > ................................................................................
00:00:28 v #5218 > > ................................................................................
00:00:28 v #5219 > > │
00:00:28 v #5220 > > ................................................................................
00:00:28 v #5221 > > ................................................................................
00:00:28 v #5222 > > │
00:00:28 v #5223 > > ................................................................................
00:00:28 v #5224 > > ................................................................................
00:00:28 v #5225 > > │
00:00:28 v #5226 > > ................................................................................
00:00:28 v #5227 > > ................................................................................
00:00:28 v #5228 > > │
00:00:28 v #5229 > > ................................................................................
00:00:28 v #5230 > > ................................................................................
00:00:28 v #5231 > > │
00:00:28 v #5232 > > ................................................................................
00:00:28 v #5233 > > ................................................................................
00:00:28 v #5234 > > │
00:00:28 v #5235 > > ................................................................................
00:00:28 v #5236 > > ................................................................................
00:00:28 v #5237 > > │
00:00:28 v #5238 > > ................................................................................
00:00:28 v #5239 > > ................................................................................
00:00:28 v #5240 > > │
00:00:28 v #5241 > > ................................................................................
00:00:28 v #5242 > > ................................................................................
00:00:28 v #5243 > > │
00:00:28 v #5244 > > │
00:00:28 v #5245 > > ................................................................................
00:00:28 v #5246 > > ................................................................................
00:00:28 v #5247 > > │
00:00:28 v #5248 > > ................................................................................
00:00:28 v #5249 > > ................................................................................
00:00:28 v #5250 > > │
00:00:28 v #5251 > > ................................................................................
00:00:28 v #5252 > > ................................................................................
00:00:28 v #5253 > > │
00:00:28 v #5254 > > ................................................................................
00:00:28 v #5255 > > ................................................................................
00:00:28 v #5256 > > │
00:00:28 v #5257 > > ................................................................................
00:00:28 v #5258 > > ................................................................................
00:00:28 v #5259 > > │
00:00:28 v #5260 > > ................................................................................
00:00:28 v #5261 > > ................................................................................
00:00:28 v #5262 > > │
00:00:28 v #5263 > > ................................................................................
00:00:28 v #5264 > > ................................................................................
00:00:28 v #5265 > > │
00:00:28 v #5266 > > ................................................................................
00:00:28 v #5267 > > ................................................................................
00:00:28 v #5268 > > │
00:00:28 v #5269 > > ...................................................;............................
00:00:28 v #5270 > > ................................................................................
00:00:28 v #5271 > > │
00:00:28 v #5272 > > ..............................................;/;;///...........................
00:00:28 v #5273 > > ................................................................................
00:00:28 v #5274 > > │
00:00:28 v #5275 > > .........................................;;;//////////..........................
00:00:28 v #5276 > > ................................................................................
00:00:28 v #5277 > > │
00:00:28 v #5278 > > ....................................;;;///////////////<.........................
00:00:28 v #5279 > > ................................................................................
00:00:28 v #5280 > > │
00:00:28 v #5281 > > ...............................;;;/;///////////////////<........................
00:00:28 v #5282 > > ................................................................................
00:00:28 v #5283 > > │
00:00:28 v #5284 > > ..........................;;;/;/////////////////////////<.......................
00:00:28 v #5285 > > ................................................................................
00:00:28 v #5286 > > │
00:00:28 v #5287 > > ......................;;/////////////////////////////////.......................
00:00:28 v #5288 > > ................................................................................
00:00:28 v #5289 > > │
00:00:28 v #5290 > > .................;;;//////////////////////////////////////......................
00:00:28 v #5291 > > ................................................................................
00:00:28 v #5292 > > │
00:00:28 v #5293 > > ..............;>///////////////////////////////////////////.....................
00:00:28 v #5294 > > ...........;;;;/................................................................
00:00:28 v #5295 > > │
00:00:28 v #5296 > > ...............>///////////////////////////////////////////<....................
00:00:28 v #5297 > > ......;;/////////...............................................................
00:00:28 v #5298 > > │
00:00:28 v #5299 > > ................>///////////////////////////////////////////<...................
00:00:28 v #5300 > > .;;;//////////////..............................................................
00:00:28 v #5301 > > │
00:00:28 v #5302 > > .................>///////////////////////////////////////////<................;>
00:00:28 v #5303 > > ///////////////////...................;;///<....................................
00:00:28 v #5304 > > │
00:00:28 v #5305 > > .................>>///////////////////////////////////////////.................>
00:00:28 v #5306 > > >///////////////////..............;;;;//////....................................
00:00:28 v #5307 > > │
00:00:28 v #5308 > > ..................>>///////////////////////////////////////////.................
00:00:28 v #5309 > > >///////////////////<.............>>/////////...................................
00:00:28 v #5310 > > │
00:00:28 v #5311 > > ...................>>///////////////////////////////////////////................
00:00:28 v #5312 > > .>///////////////////<.............>>/////////..................................
00:00:28 v #5313 > > │
00:00:28 v #5314 > > ....................>>///////////////////////////////////////////...............
00:00:28 v #5315 > > .>>///////////////////..............>>////////..................................
00:00:28 v #5316 > > │
00:00:28 v #5317 > > .....................>///////////////////////////////////////////<..............
00:00:28 v #5318 > > ..>>///////////////////..............>////......................................
00:00:28 v #5319 > > │
00:00:28 v #5320 > > ......................>///////////////////////////////////////////<.............
00:00:28 v #5321 > > ...>>//////////////.............................................................
00:00:28 v #5322 > > │
00:00:28 v #5323 > > .......................>///////////////////////////////////////////.............
00:00:28 v #5324 > > ....>>////////..................................................................
00:00:28 v #5325 > > │
00:00:28 v #5326 > > ........................>//////////////////////////////////////////.............
00:00:28 v #5327 > > .....>////......................................................................
00:00:28 v #5328 > > │
00:00:28 v #5329 > > ........................>>/////////////////////////////////////.................
00:00:28 v #5330 > > ................................................................................
00:00:28 v #5331 > > │
00:00:28 v #5332 > > .........................>>///////////////////////////////......................
00:00:28 v #5333 > > ................................................................................
00:00:28 v #5334 > > │
00:00:28 v #5335 > > ..........................>>//////////////////////////..........................
00:00:28 v #5336 > > ................................................................................
00:00:28 v #5337 > > │
00:00:28 v #5338 > > ...........................>>////////////////////...............................
00:00:28 v #5339 > > ................................................................................
00:00:28 v #5340 > > │
00:00:28 v #5341 > > ............................>>///////////////...................................
00:00:28 v #5342 > > ................................................................................
00:00:28 v #5343 > > │
00:00:28 v #5344 > > .............................>>/////////........................................
00:00:28 v #5345 > > ................................................................................
00:00:28 v #5346 > > │
00:00:28 v #5347 > > ..............................>/////............................................
00:00:28 v #5348 > > ................................................................................
00:00:28 v #5349 > > │
00:00:28 v #5350 > > .............................../................................................
00:00:28 v #5351 > > ................................................................................
00:00:28 v #5352 > > │
00:00:28 v #5353 > > ................................................................................
00:00:28 v #5354 > > ................................................................................
00:00:28 v #5355 > > │
00:00:28 v #5356 > > ................................................................................
00:00:28 v #5357 > > ................................................................................
00:00:28 v #5358 > > │
00:00:28 v #5359 > > ................................................................................
00:00:28 v #5360 > > ................................................................................
00:00:28 v #5361 > > │
00:00:28 v #5362 > > ................................................................................
00:00:28 v #5363 > > ................................................................................
00:00:28 v #5364 > > │
00:00:28 v #5365 > > ................................................................................
00:00:28 v #5366 > > ................................................................................
00:00:28 v #5367 > > │
00:00:28 v #5368 > > ................................................................................
00:00:28 v #5369 > > ................................................................................
00:00:28 v #5370 > > │
00:00:28 v #5371 > > ................................................................................
00:00:28 v #5372 > > ................................................................................
00:00:28 v #5373 > > │
00:00:28 v #5374 > > ................................................................................
00:00:28 v #5375 > > ................................................................................
00:00:28 v #5376 > > │
00:00:28 v #5377 > > │
00:00:28 v #5378 > > ................................................................................
00:00:28 v #5379 > > ................................................................................
00:00:28 v #5380 > > │
00:00:28 v #5381 > > ................................................................................
00:00:28 v #5382 > > ................................................................................
00:00:28 v #5383 > > │
00:00:28 v #5384 > > ................................................................................
00:00:28 v #5385 > > ................................................................................
00:00:28 v #5386 > > │
00:00:28 v #5387 > > ................................................................................
00:00:28 v #5388 > > ................................................................................
00:00:28 v #5389 > > │
00:00:28 v #5390 > > ................................................................................
00:00:28 v #5391 > > ................................................................................
00:00:28 v #5392 > > │
00:00:28 v #5393 > > ................................................................................
00:00:28 v #5394 > > ................................................................................
00:00:28 v #5395 > > │
00:00:28 v #5396 > > ................................................................................
00:00:28 v #5397 > > ................................................................................
00:00:28 v #5398 > > │
00:00:28 v #5399 > > ................................................................................
00:00:28 v #5400 > > ................................................................................
00:00:28 v #5401 > > │
00:00:28 v #5402 > > ................................................;;/<............................
00:00:28 v #5403 > > ................................................................................
00:00:28 v #5404 > > │
00:00:28 v #5405 > > ............................................;;//////<...........................
00:00:28 v #5406 > > ................................................................................
00:00:28 v #5407 > > │
00:00:28 v #5408 > > ........................................;;;//////////<..........................
00:00:28 v #5409 > > ................................................................................
00:00:28 v #5410 > > │
00:00:28 v #5411 > > ....................................;/;;//////////////<.........................
00:00:28 v #5412 > > ................................................................................
00:00:28 v #5413 > > │
00:00:28 v #5414 > > ................................;;/////////////////////<........................
00:00:28 v #5415 > > ................................................................................
00:00:28 v #5416 > > │
00:00:28 v #5417 > > ...........................;;//;////////////////////////........................
00:00:28 v #5418 > > ................................................................................
00:00:28 v #5419 > > │
00:00:28 v #5420 > > .......................;;;///////////////////////////////<......................
00:00:28 v #5421 > > ................................................................................
00:00:28 v #5422 > > │
00:00:28 v #5423 > > ...................;/;////////////////////////////////////<.....................
00:00:28 v #5424 > > ..............;.................................................................
00:00:28 v #5425 > > │
00:00:28 v #5426 > > ..............;;;;/////////////////////////////////////////<....................
00:00:28 v #5427 > > ..........;/////................................................................
00:00:28 v #5428 > > │
00:00:28 v #5429 > > ..............;>////////////////////////////////////////////<...................
00:00:28 v #5430 > > ......;;;;///////...............................................................
00:00:28 v #5431 > > │
00:00:28 v #5432 > > ................>////////////////////////////////////////////<..................
00:00:28 v #5433 > > ..;///////////////..............................................................
00:00:28 v #5434 > > │
00:00:28 v #5435 > > .................>////////////////////////////////////////////.................;
00:00:28 v #5436 > > ;//////////////////...................;;;//<....................................
00:00:28 v #5437 > > │
00:00:28 v #5438 > > ..................>////////////////////////////////////////////................>
00:00:28 v #5439 > > >///////////////////..............;;;///////<...................................
00:00:28 v #5440 > > │
00:00:28 v #5441 > > ...................>////////////////////////////////////////////<..............>
00:00:28 v #5442 > > >>///////////////////.............>>/////////<..................................
00:00:28 v #5443 > > │
00:00:28 v #5444 > > ....................>////////////////////////////////////////////<..............
00:00:28 v #5445 > > >>>///////////////////.............>>/////////..................................
00:00:28 v #5446 > > │
00:00:28 v #5447 > > .....................>////////////////////////////////////////////<.............
00:00:28 v #5448 > > .>>>///////////////////.............>>////////..................................
00:00:28 v #5449 > > │
00:00:28 v #5450 > > ......................>////////////////////////////////////////////<............
00:00:28 v #5451 > > ..>>>/////////////////...............>>///......................................
00:00:28 v #5452 > > │
00:00:28 v #5453 > > .......................>////////////////////////////////////////////............
00:00:28 v #5454 > > ...>>>////////////..............................................................
00:00:28 v #5455 > > │
00:00:28 v #5456 > > ........................>///////////////////////////////////////////............
00:00:28 v #5457 > > ....>>>///////..................................................................
00:00:28 v #5458 > > │
00:00:28 v #5459 > > .........................>>/////////////////////////////////////................
00:00:28 v #5460 > > .....>>////.....................................................................
00:00:28 v #5461 > > │
00:00:28 v #5462 > > ..........................>/////////////////////////////////....................
00:00:28 v #5463 > > ................................................................................
00:00:28 v #5464 > > │
00:00:28 v #5465 > > ...........................>>////////////////////////////.......................
00:00:28 v #5466 > > ................................................................................
00:00:28 v #5467 > > │
00:00:28 v #5468 > > ............................>>///////////////////////...........................
00:00:28 v #5469 > > ................................................................................
00:00:28 v #5470 > > │
00:00:28 v #5471 > > .............................>////////////////////..............................
00:00:28 v #5472 > > ................................................................................
00:00:28 v #5473 > > │
00:00:28 v #5474 > > ..............................>>//////////////..................................
00:00:28 v #5475 > > ................................................................................
00:00:28 v #5476 > > │
00:00:28 v #5477 > > ...............................>>/////////......................................
00:00:28 v #5478 > > ................................................................................
00:00:28 v #5479 > > │
00:00:28 v #5480 > > ................................>>////..........................................
00:00:28 v #5481 > > ................................................................................
00:00:28 v #5482 > > │
00:00:28 v #5483 > > .................................>/.............................................
00:00:28 v #5484 > > ................................................................................
00:00:28 v #5485 > > │
00:00:28 v #5486 > > ................................................................................
00:00:28 v #5487 > > ................................................................................
00:00:28 v #5488 > > │
00:00:28 v #5489 > > ................................................................................
00:00:28 v #5490 > > ................................................................................
00:00:28 v #5491 > > │
00:00:28 v #5492 > > ................................................................................
00:00:28 v #5493 > > ................................................................................
00:00:28 v #5494 > > │
00:00:28 v #5495 > > ................................................................................
00:00:28 v #5496 > > ................................................................................
00:00:28 v #5497 > > │
00:00:28 v #5498 > > ................................................................................
00:00:28 v #5499 > > ................................................................................
00:00:28 v #5500 > > │
00:00:28 v #5501 > > ................................................................................
00:00:28 v #5502 > > ................................................................................
00:00:28 v #5503 > > │
00:00:28 v #5504 > > ................................................................................
00:00:28 v #5505 > > ................................................................................
00:00:28 v #5506 > > │
00:00:28 v #5507 > > ................................................................................
00:00:28 v #5508 > > ................................................................................
00:00:28 v #5509 > > │
00:00:28 v #5510 > > │
00:00:28 v #5511 > > ................................................................................
00:00:28 v #5512 > > ................................................................................
00:00:28 v #5513 > > │
00:00:28 v #5514 > > ................................................................................
00:00:28 v #5515 > > ................................................................................
00:00:28 v #5516 > > │
00:00:28 v #5517 > > ................................................................................
00:00:28 v #5518 > > ................................................................................
00:00:28 v #5519 > > │
00:00:28 v #5520 > > ................................................................................
00:00:28 v #5521 > > ................................................................................
00:00:28 v #5522 > > │
00:00:28 v #5523 > > ................................................................................
00:00:28 v #5524 > > ................................................................................
00:00:28 v #5525 > > │
00:00:28 v #5526 > > ................................................................................
00:00:28 v #5527 > > ................................................................................
00:00:28 v #5528 > > │
00:00:28 v #5529 > > ................................................................................
00:00:28 v #5530 > > ................................................................................
00:00:28 v #5531 > > │
00:00:28 v #5532 > > ................................................................................
00:00:28 v #5533 > > ................................................................................
00:00:28 v #5534 > > │
00:00:28 v #5535 > > ...............................................;;;/.............................
00:00:28 v #5536 > > ................................................................................
00:00:28 v #5537 > > │
00:00:28 v #5538 > > ...........................................;;;//////............................
00:00:28 v #5539 > > ................................................................................
00:00:28 v #5540 > > │
00:00:28 v #5541 > > .......................................;;;///////////...........................
00:00:28 v #5542 > > ................................................................................
00:00:28 v #5543 > > │
00:00:28 v #5544 > > ....................................;;////////////////..........................
00:00:28 v #5545 > > ................................................................................
00:00:28 v #5546 > > │
00:00:28 v #5547 > > ................................;;;////////////////////<........................
00:00:28 v #5548 > > ................................................................................
00:00:28 v #5549 > > │
00:00:28 v #5550 > > ............................;;/;////////////////////////<.......................
00:00:28 v #5551 > > ................................................................................
00:00:28 v #5552 > > │
00:00:28 v #5553 > > .........................;;//////////////////////////////<......................
00:00:28 v #5554 > > ................................................................................
00:00:28 v #5555 > > │
00:00:28 v #5556 > > .....................;/////////////////////////////////////.....................
00:00:28 v #5557 > > .............;;.................................................................
00:00:28 v #5558 > > │
00:00:28 v #5559 > > .................;/;////////////////////////////////////////....................
00:00:28 v #5560 > > ..........;;////................................................................
00:00:28 v #5561 > > │
00:00:28 v #5562 > > ...............;/////////////////////////////////////////////...................
00:00:28 v #5563 > > ......;;;////////...............................................................
00:00:28 v #5564 > > │
00:00:28 v #5565 > > ...............>>/////////////////////////////////////////////..................
00:00:28 v #5566 > > ...;//////////////<.............................................................
00:00:28 v #5567 > > │
00:00:28 v #5568 > > ................>>/////////////////////////////////////////////................;
00:00:28 v #5569 > > ;///////////////////..................;;;//<....................................
00:00:28 v #5570 > > │
00:00:28 v #5571 > > ..................>>////////////////////////////////////////////<.............;;
00:00:28 v #5572 > > >////////////////////..............;/////////...................................
00:00:28 v #5573 > > │
00:00:28 v #5574 > > ...................>>////////////////////////////////////////////<............\>
00:00:28 v #5575 > > >>////////////////////............;>//////////..................................
00:00:28 v #5576 > > │
00:00:28 v #5577 > > ....................>>////////////////////////////////////////////<.............
00:00:28 v #5578 > > >>>////////////////////...........\>>//////////.................................
00:00:28 v #5579 > > │
00:00:28 v #5580 > > .....................>>/////////////////////////////////////////////............
00:00:28 v #5581 > > .>>>////////////////////............>>>//////...................................
00:00:28 v #5582 > > │
00:00:28 v #5583 > > .......................>/////////////////////////////////////////////...........
00:00:28 v #5584 > > ..>>>////////////////................>>///......................................
00:00:28 v #5585 > > │
00:00:28 v #5586 > > ........................>////////////////////////////////////////////...........
00:00:28 v #5587 > > ...>>>////////////..............................................................
00:00:28 v #5588 > > │
00:00:28 v #5589 > > .........................>>///////////////////////////////////////..............
00:00:28 v #5590 > > ....>>>>///////.................................................................
00:00:28 v #5591 > > │
00:00:28 v #5592 > > ..........................>>///////////////////////////////////.................
00:00:28 v #5593 > > .....\>>>///....................................................................
00:00:28 v #5594 > > │
00:00:28 v #5595 > > ...........................>>//////////////////////////////.....................
00:00:28 v #5596 > > ................................................................................
00:00:28 v #5597 > > │
00:00:28 v #5598 > > ............................>>//////////////////////////........................
00:00:28 v #5599 > > ................................................................................
00:00:28 v #5600 > > │
00:00:28 v #5601 > > .............................>>//////////////////////...........................
00:00:28 v #5602 > > ................................................................................
00:00:28 v #5603 > > │
00:00:28 v #5604 > > ...............................>//////////////////..............................
00:00:28 v #5605 > > ................................................................................
00:00:28 v #5606 > > │
00:00:28 v #5607 > > ................................>>/////////////.................................
00:00:28 v #5608 > > ................................................................................
00:00:28 v #5609 > > │
00:00:28 v #5610 > > .................................>>/////////....................................
00:00:28 v #5611 > > ................................................................................
00:00:28 v #5612 > > │
00:00:28 v #5613 > > ..................................>>/////.......................................
00:00:28 v #5614 > > ................................................................................
00:00:28 v #5615 > > │
00:00:28 v #5616 > > ...................................>//..........................................
00:00:28 v #5617 > > ................................................................................
00:00:28 v #5618 > > │
00:00:28 v #5619 > > ................................................................................
00:00:28 v #5620 > > ................................................................................
00:00:28 v #5621 > > │
00:00:28 v #5622 > > ................................................................................
00:00:28 v #5623 > > ................................................................................
00:00:28 v #5624 > > │
00:00:28 v #5625 > > ................................................................................
00:00:28 v #5626 > > ................................................................................
00:00:28 v #5627 > > │
00:00:28 v #5628 > > ................................................................................
00:00:28 v #5629 > > ................................................................................
00:00:28 v #5630 > > │
00:00:28 v #5631 > > ................................................................................
00:00:28 v #5632 > > ................................................................................
00:00:28 v #5633 > > │
00:00:28 v #5634 > > ................................................................................
00:00:28 v #5635 > > ................................................................................
00:00:28 v #5636 > > │
00:00:28 v #5637 > > ................................................................................
00:00:28 v #5638 > > ................................................................................
00:00:28 v #5639 > > │
00:00:28 v #5640 > > ................................................................................
00:00:28 v #5641 > > ................................................................................
00:00:28 v #5642 > > │
00:00:28 v #5643 > > │
00:00:28 v #5644 > > ................................................................................
00:00:28 v #5645 > > ................................................................................
00:00:28 v #5646 > > │
00:00:28 v #5647 > > ................................................................................
00:00:28 v #5648 > > ................................................................................
00:00:28 v #5649 > > │
00:00:28 v #5650 > > ................................................................................
00:00:28 v #5651 > > ................................................................................
00:00:28 v #5652 > > │
00:00:28 v #5653 > > ................................................................................
00:00:28 v #5654 > > ................................................................................
00:00:28 v #5655 > > │
00:00:28 v #5656 > > ................................................................................
00:00:28 v #5657 > > ................................................................................
00:00:28 v #5658 > > │
00:00:28 v #5659 > > ................................................................................
00:00:28 v #5660 > > ................................................................................
00:00:28 v #5661 > > │
00:00:28 v #5662 > > ................................................................................
00:00:28 v #5663 > > ................................................................................
00:00:28 v #5664 > > │
00:00:28 v #5665 > > ................................................................................
00:00:28 v #5666 > > ................................................................................
00:00:28 v #5667 > > │
00:00:28 v #5668 > > .............................................;;///..............................
00:00:28 v #5669 > > ................................................................................
00:00:28 v #5670 > > │
00:00:28 v #5671 > > ..........................................;;;//////<............................
00:00:28 v #5672 > > ................................................................................
00:00:28 v #5673 > > │
00:00:28 v #5674 > > .......................................;////////////<...........................
00:00:28 v #5675 > > ................................................................................
00:00:28 v #5676 > > │
00:00:28 v #5677 > > ....................................;/////////////////..........................
00:00:28 v #5678 > > ................................................................................
00:00:28 v #5679 > > │
00:00:28 v #5680 > > ................................;;;////////////////////<........................
00:00:28 v #5681 > > ................................................................................
00:00:28 v #5682 > > │
00:00:28 v #5683 > > .............................;;;////////////////////////<.......................
00:00:28 v #5684 > > ................................................................................
00:00:28 v #5685 > > │
00:00:28 v #5686 > > ..........................;///////////////////////////////......................
00:00:28 v #5687 > > ................................................................................
00:00:28 v #5688 > > │
00:00:28 v #5689 > > ......................;;///////////////////////////////////.....................
00:00:28 v #5690 > > .............;/.................................................................
00:00:28 v #5691 > > │
00:00:28 v #5692 > > ...................;;;//////////////////////////////////////<...................
00:00:28 v #5693 > > ..........;;////................................................................
00:00:28 v #5694 > > │
00:00:28 v #5695 > > ................;;////////////////////////////////////////////..................
00:00:28 v #5696 > > ......;;;////////...............................................................
00:00:28 v #5697 > > │
00:00:28 v #5698 > > ...............;>//////////////////////////////////////////////.................
00:00:28 v #5699 > > ...;;//////////////......................<......................................
00:00:28 v #5700 > > │
00:00:28 v #5701 > > ................>>//////////////////////////////////////////////................
00:00:28 v #5702 > > ;///////////////////..................;;;//<....................................
00:00:28 v #5703 > > │
00:00:28 v #5704 > > .................>>>//////////////////////////////////////////////............;;
00:00:28 v #5705 > > >////////////////////..............;;;///////...................................
00:00:28 v #5706 > > │
00:00:28 v #5707 > > ..................>>>//////////////////////////////////////////////...........>>
00:00:28 v #5708 > > >>////////////////////<..........;;;>/////////..................................
00:00:28 v #5709 > > │
00:00:28 v #5710 > > ...................>>>//////////////////////////////////////////////...........>
00:00:28 v #5711 > > >>>/////////////////////..........>>>>/////////.................................
00:00:28 v #5712 > > │
00:00:28 v #5713 > > .....................>>>/////////////////////////////////////////////<..........
00:00:28 v #5714 > > >>>>>//////////////////............>>>>//////...................................
00:00:28 v #5715 > > │
00:00:28 v #5716 > > ......................>>>////////////////////////////////////////////...........
00:00:28 v #5717 > > .\>>>>///////////////................>>>//......................................
00:00:28 v #5718 > > │
00:00:28 v #5719 > > ........................>>>////////////////////////////////////////.............
00:00:28 v #5720 > > ...>>>>///////////..............................................................
00:00:28 v #5721 > > │
00:00:28 v #5722 > > .........................>>>////////////////////////////////////................
00:00:28 v #5723 > > ....>>>>>//////.................................................................
00:00:28 v #5724 > > │
00:00:28 v #5725 > > ..........................>>>////////////////////////////////...................
00:00:28 v #5726 > > ......>>>>//....................................................................
00:00:28 v #5727 > > │
00:00:28 v #5728 > > ............................>>>////////////////////////////.....................
00:00:28 v #5729 > > ................................................................................
00:00:28 v #5730 > > │
00:00:28 v #5731 > > .............................>>>////////////////////////........................
00:00:28 v #5732 > > ................................................................................
00:00:28 v #5733 > > │
00:00:28 v #5734 > > ..............................>>>////////////////////...........................
00:00:28 v #5735 > > ................................................................................
00:00:28 v #5736 > > │
00:00:28 v #5737 > > ................................>>>////////////////.............................
00:00:28 v #5738 > > ................................................................................
00:00:28 v #5739 > > │
00:00:28 v #5740 > > .................................>>>////////////................................
00:00:28 v #5741 > > ................................................................................
00:00:28 v #5742 > > │
00:00:28 v #5743 > > ...................................>>>////////..................................
00:00:28 v #5744 > > ................................................................................
00:00:28 v #5745 > > │
00:00:28 v #5746 > > ....................................>>>////.....................................
00:00:28 v #5747 > > ................................................................................
00:00:28 v #5748 > > │
00:00:28 v #5749 > > ......................................>//.......................................
00:00:28 v #5750 > > ................................................................................
00:00:28 v #5751 > > │
00:00:28 v #5752 > > ................................................................................
00:00:28 v #5753 > > ................................................................................
00:00:28 v #5754 > > │
00:00:28 v #5755 > > ................................................................................
00:00:28 v #5756 > > ................................................................................
00:00:28 v #5757 > > │
00:00:28 v #5758 > > ................................................................................
00:00:28 v #5759 > > ................................................................................
00:00:28 v #5760 > > │
00:00:28 v #5761 > > ................................................................................
00:00:28 v #5762 > > ................................................................................
00:00:28 v #5763 > > │
00:00:28 v #5764 > > ................................................................................
00:00:28 v #5765 > > ................................................................................
00:00:28 v #5766 > > │
00:00:28 v #5767 > > ................................................................................
00:00:28 v #5768 > > ................................................................................
00:00:28 v #5769 > > │
00:00:28 v #5770 > > ................................................................................
00:00:28 v #5771 > > ................................................................................
00:00:28 v #5772 > > │
00:00:28 v #5773 > > ................................................................................
00:00:28 v #5774 > > ................................................................................
00:00:28 v #5775 > > │
00:00:28 v #5776 > > │
00:00:28 v #5777 > > ................................................................................
00:00:28 v #5778 > > ................................................................................
00:00:28 v #5779 > > │
00:00:28 v #5780 > > ................................................................................
00:00:28 v #5781 > > ................................................................................
00:00:28 v #5782 > > │
00:00:28 v #5783 > > ................................................................................
00:00:28 v #5784 > > ................................................................................
00:00:28 v #5785 > > │
00:00:28 v #5786 > > ................................................................................
00:00:28 v #5787 > > ................................................................................
00:00:28 v #5788 > > │
00:00:28 v #5789 > > ................................................................................
00:00:28 v #5790 > > ................................................................................
00:00:28 v #5791 > > │
00:00:28 v #5792 > > ................................................................................
00:00:28 v #5793 > > ................................................................................
00:00:28 v #5794 > > │
00:00:28 v #5795 > > ................................................................................
00:00:28 v #5796 > > ................................................................................
00:00:28 v #5797 > > │
00:00:28 v #5798 > > ...............................................;<...............................
00:00:28 v #5799 > > ................................................................................
00:00:28 v #5800 > > │
00:00:28 v #5801 > > ............................................;;;//<..............................
00:00:28 v #5802 > > ................................................................................
00:00:28 v #5803 > > │
00:00:28 v #5804 > > ..........................................;;///////<............................
00:00:28 v #5805 > > ................................................................................
00:00:28 v #5806 > > │
00:00:28 v #5807 > > .......................................;////////////<...........................
00:00:28 v #5808 > > ................................................................................
00:00:28 v #5809 > > │
00:00:28 v #5810 > > ....................................;/////////////////..........................
00:00:28 v #5811 > > ................................................................................
00:00:28 v #5812 > > │
00:00:28 v #5813 > > .................................;/////////////////////<........................
00:00:28 v #5814 > > ................................................................................
00:00:28 v #5815 > > │
00:00:28 v #5816 > > ..............................;;/////////////////////////.......................
00:00:28 v #5817 > > ................................................................................
00:00:28 v #5818 > > │
00:00:28 v #5819 > > ...........................;;/////////////////////////////......................
00:00:28 v #5820 > > ................................................................................
00:00:28 v #5821 > > │
00:00:28 v #5822 > > ........................;;//////////////////////////////////....................
00:00:28 v #5823 > > ............;;<.................................................................
00:00:28 v #5824 > > │
00:00:28 v #5825 > > .....................;;//////////////////////////////////////...................
00:00:28 v #5826 > > .........;//////................................................................
00:00:28 v #5827 > > │
00:00:28 v #5828 > > ..................;///////////////////////////////////////////<.................
00:00:28 v #5829 > > .......;//////////..............................................................
00:00:28 v #5830 > > │
00:00:28 v #5831 > > ................;///////////////////////////////////////////////................
00:00:28 v #5832 > > ....;;/////////////......................;......................................
00:00:28 v #5833 > > │
00:00:28 v #5834 > > ................>>>//////////////////////////////////////////////<..............
00:00:28 v #5835 > > .;;/////////////////<.................;;///<....................................
00:00:28 v #5836 > > │
00:00:28 v #5837 > > ................>>>>///////////////////////////////////////////////............;
00:00:28 v #5838 > > >/////////////////////.............;;////////...................................
00:00:28 v #5839 > > │
00:00:28 v #5840 > > ................;>>>>>//////////////////////////////////////////////<........;;>
00:00:28 v #5841 > > >>/////////////////////<.........;;;>/////////<.................................
00:00:28 v #5842 > > │
00:00:28 v #5843 > > ..................>>>>>//////////////////////////////////////////////<........>>
00:00:28 v #5844 > > >>>>////////////////////..........>>>>/////////.................................
00:00:28 v #5845 > > │
00:00:28 v #5846 > > ...................>>>>>//////////////////////////////////////////////..........
00:00:28 v #5847 > > >>>>>//////////////////............>>>>>/////...................................
00:00:28 v #5848 > > │
00:00:28 v #5849 > > .....................>>>>>//////////////////////////////////////////............
00:00:28 v #5850 > > .>>>>>>/////////////.................>>>>/......................................
00:00:28 v #5851 > > │
00:00:28 v #5852 > > ......................>>>>>>/////////////////////////////////////...............
00:00:28 v #5853 > > ...>>>>>//////////..............................................................
00:00:28 v #5854 > > │
00:00:28 v #5855 > > ........................>>>>>//////////////////////////////////.................
00:00:28 v #5856 > > ....>>>>>>/////.................................................................
00:00:28 v #5857 > > │
00:00:28 v #5858 > > ..........................>>>>>//////////////////////////////...................
00:00:28 v #5859 > > ......>>>>>//...................................................................
00:00:28 v #5860 > > │
00:00:28 v #5861 > > ...........................>>>>>///////////////////////////.....................
00:00:28 v #5862 > > ................................................................................
00:00:28 v #5863 > > │
00:00:28 v #5864 > > .............................>>>>>///////////////////////.......................
00:00:28 v #5865 > > ................................................................................
00:00:28 v #5866 > > │
00:00:28 v #5867 > > ..............................>>>>>///////////////////..........................
00:00:28 v #5868 > > ................................................................................
00:00:28 v #5869 > > │
00:00:28 v #5870 > > ................................>>>>>///////////////............................
00:00:28 v #5871 > > ................................................................................
00:00:28 v #5872 > > │
00:00:28 v #5873 > > .................................>>>>>>///////////..............................
00:00:28 v #5874 > > ................................................................................
00:00:28 v #5875 > > │
00:00:28 v #5876 > > ...................................=>>>>///////.................................
00:00:28 v #5877 > > ................................................................................
00:00:28 v #5878 > > │
00:00:28 v #5879 > > ......................................>>>>///...................................
00:00:28 v #5880 > > ................................................................................
00:00:28 v #5881 > > │
00:00:28 v #5882 > > ........................................=>/.....................................
00:00:28 v #5883 > > ................................................................................
00:00:28 v #5884 > > │
00:00:28 v #5885 > > ................................................................................
00:00:28 v #5886 > > ................................................................................
00:00:28 v #5887 > > │
00:00:28 v #5888 > > ................................................................................
00:00:28 v #5889 > > ................................................................................
00:00:28 v #5890 > > │
00:00:28 v #5891 > > ................................................................................
00:00:28 v #5892 > > ................................................................................
00:00:28 v #5893 > > │
00:00:28 v #5894 > > ................................................................................
00:00:28 v #5895 > > ................................................................................
00:00:28 v #5896 > > │
00:00:28 v #5897 > > ................................................................................
00:00:28 v #5898 > > ................................................................................
00:00:28 v #5899 > > │
00:00:28 v #5900 > > ................................................................................
00:00:28 v #5901 > > ................................................................................
00:00:28 v #5902 > > │
00:00:28 v #5903 > > ................................................................................
00:00:28 v #5904 > > ................................................................................
00:00:28 v #5905 > > │
00:00:28 v #5906 > > ................................................................................
00:00:28 v #5907 > > ................................................................................
00:00:28 v #5908 > > │
00:00:28 v #5909 > > │
00:00:28 v #5910 > > ................................................................................
00:00:28 v #5911 > > ................................................................................
00:00:28 v #5912 > > │
00:00:28 v #5913 > > ................................................................................
00:00:28 v #5914 > > ................................................................................
00:00:28 v #5915 > > │
00:00:28 v #5916 > > ................................................................................
00:00:28 v #5917 > > ................................................................................
00:00:28 v #5918 > > │
00:00:28 v #5919 > > ................................................................................
00:00:28 v #5920 > > ................................................................................
00:00:28 v #5921 > > │
00:00:28 v #5922 > > ................................................................................
00:00:28 v #5923 > > ................................................................................
00:00:28 v #5924 > > │
00:00:28 v #5925 > > ................................................................................
00:00:28 v #5926 > > ................................................................................
00:00:28 v #5927 > > │
00:00:28 v #5928 > > ................................................................................
00:00:28 v #5929 > > ................................................................................
00:00:28 v #5930 > > │
00:00:28 v #5931 > > ..............................................;/................................
00:00:28 v #5932 > > ................................................................................
00:00:28 v #5933 > > │
00:00:28 v #5934 > > ............................................;////...............................
00:00:28 v #5935 > > ................................................................................
00:00:28 v #5936 > > │
00:00:28 v #5937 > > .........................................;;///////<.............................
00:00:28 v #5938 > > ................................................................................
00:00:28 v #5939 > > │
00:00:28 v #5940 > > ......................................;;////////////............................
00:00:28 v #5941 > > ................................................................................
00:00:28 v #5942 > > │
00:00:28 v #5943 > > ....................................;;///////////////<..........................
00:00:28 v #5944 > > ................................................................................
00:00:28 v #5945 > > │
00:00:28 v #5946 > > .................................;/////////////////////<........................
00:00:28 v #5947 > > ................................................................................
00:00:28 v #5948 > > │
00:00:28 v #5949 > > ..............................;;;////////////////////////.......................
00:00:28 v #5950 > > ................................................................................
00:00:28 v #5951 > > │
00:00:28 v #5952 > > ............................;/////////////////////////////<.....................
00:00:28 v #5953 > > ................................................................................
00:00:28 v #5954 > > │
00:00:28 v #5955 > > .........................;;/////////////////////////////////....................
00:00:28 v #5956 > > ...........;;/..................................................................
00:00:28 v #5957 > > │
00:00:28 v #5958 > > .......................;;/////////////////////////////////////..................
00:00:28 v #5959 > > .........;;/////................................................................
00:00:28 v #5960 > > │
00:00:28 v #5961 > > ....................;;/////////////////////////////////////////.................
00:00:28 v #5962 > > .......;//////////..............................................................
00:00:28 v #5963 > > │
00:00:28 v #5964 > > ..................;;/////////////////////////////////////////////...............
00:00:28 v #5965 > > ....;;/////////////......................;......................................
00:00:28 v #5966 > > │
00:00:28 v #5967 > > ................;;>///////////////////////////////////////////////<.............
00:00:28 v #5968 > > ..;;/////////////////.................;;///<....................................
00:00:28 v #5969 > > │
00:00:28 v #5970 > > ................;>>>////////////////////////////////////////////////...........;
00:00:28 v #5971 > > ;/////////////////////.............\;////////<..................................
00:00:28 v #5972 > > │
00:00:28 v #5973 > > ................>>>>>>///////////////////////////////////////////////<.......;;;
00:00:28 v #5974 > > >>>/////////////////////.........;;;>//////////.................................
00:00:28 v #5975 > > │
00:00:28 v #5976 > > ................>>>>>>>>//////////////////////////////////////////////.......>>>
00:00:28 v #5977 > > >>>>////////////////////.........>>>>>>////////.................................
00:00:28 v #5978 > > │
00:00:28 v #5979 > > ..................>>>>>>>>//////////////////////////////////////////...........>
00:00:28 v #5980 > > >>>>>>////////////////.............>>>>>/////...................................
00:00:28 v #5981 > > │
00:00:28 v #5982 > > ...................\>>>>>>>///////////////////////////////////////..............
00:00:28 v #5983 > > .>>>>>>>////////////.................>>>>//.....................................
00:00:28 v #5984 > > │
00:00:28 v #5985 > > .....................>>>>>>>>///////////////////////////////////................
00:00:28 v #5986 > > ..>>>>>>>/////////..............................................................
00:00:28 v #5987 > > │
00:00:28 v #5988 > > .......................>>>>>>>>///////////////////////////////..................
00:00:28 v #5989 > > ....>>>>>>>/////................................................................
00:00:28 v #5990 > > │
00:00:28 v #5991 > > .........................>>>>>>>/////////////////////////////...................
00:00:28 v #5992 > > ......>>>>>>//..................................................................
00:00:28 v #5993 > > │
00:00:28 v #5994 > > ..........................>>>>>>>>/////////////////////////.....................
00:00:28 v #5995 > > ................................................................................
00:00:28 v #5996 > > │
00:00:28 v #5997 > > ............................>>>>>>>>/////////////////////.......................
00:00:28 v #5998 > > ................................................................................
00:00:28 v #5999 > > │
00:00:28 v #6000 > > ..............................>>>>>>>>/////////////////.........................
00:00:28 v #6001 > > ................................................................................
00:00:28 v #6002 > > │
00:00:28 v #6003 > > ................................>>>>>>>//////////////...........................
00:00:28 v #6004 > > ................................................................................
00:00:28 v #6005 > > │
00:00:28 v #6006 > > .................................>>>>>>>>//////////.............................
00:00:28 v #6007 > > ................................................................................
00:00:28 v #6008 > > │
00:00:28 v #6009 > > ....................................>>>>>>>//////...............................
00:00:28 v #6010 > > ................................................................................
00:00:28 v #6011 > > │
00:00:28 v #6012 > > ........................................>>>>///.................................
00:00:28 v #6013 > > ................................................................................
00:00:28 v #6014 > > │
00:00:28 v #6015 > > ...........................................>>/..................................
00:00:28 v #6016 > > ................................................................................
00:00:28 v #6017 > > │
00:00:28 v #6018 > > ................................................................................
00:00:28 v #6019 > > ................................................................................
00:00:28 v #6020 > > │
00:00:28 v #6021 > > ................................................................................
00:00:28 v #6022 > > ................................................................................
00:00:28 v #6023 > > │
00:00:28 v #6024 > > ................................................................................
00:00:28 v #6025 > > ................................................................................
00:00:28 v #6026 > > │
00:00:28 v #6027 > > ................................................................................
00:00:28 v #6028 > > ................................................................................
00:00:28 v #6029 > > │
00:00:28 v #6030 > > ................................................................................
00:00:28 v #6031 > > ................................................................................
00:00:28 v #6032 > > │
00:00:28 v #6033 > > ................................................................................
00:00:28 v #6034 > > ................................................................................
00:00:28 v #6035 > > │
00:00:28 v #6036 > > ................................................................................
00:00:28 v #6037 > > ................................................................................
00:00:28 v #6038 > > │
00:00:28 v #6039 > > ................................................................................
00:00:28 v #6040 > > ................................................................................
00:00:28 v #6041 > > │
00:00:28 v #6042 > > │
00:00:28 v #6043 > > ................................................................................
00:00:28 v #6044 > > ................................................................................
00:00:28 v #6045 > > │
00:00:28 v #6046 > > ................................................................................
00:00:28 v #6047 > > ................................................................................
00:00:28 v #6048 > > │
00:00:28 v #6049 > > ................................................................................
00:00:28 v #6050 > > ................................................................................
00:00:28 v #6051 > > │
00:00:28 v #6052 > > ................................................................................
00:00:28 v #6053 > > ................................................................................
00:00:28 v #6054 > > │
00:00:28 v #6055 > > ................................................................................
00:00:28 v #6056 > > ................................................................................
00:00:28 v #6057 > > │
00:00:28 v #6058 > > ................................................................................
00:00:28 v #6059 > > ................................................................................
00:00:28 v #6060 > > │
00:00:28 v #6061 > > ................................................................................
00:00:28 v #6062 > > ................................................................................
00:00:28 v #6063 > > │
00:00:28 v #6064 > > .............................................;/.................................
00:00:28 v #6065 > > ................................................................................
00:00:28 v #6066 > > │
00:00:28 v #6067 > > ...........................................;;////...............................
00:00:28 v #6068 > > ................................................................................
00:00:28 v #6069 > > │
00:00:28 v #6070 > > ........................................;;////////<.............................
00:00:28 v #6071 > > ................................................................................
00:00:28 v #6072 > > │
00:00:28 v #6073 > > ......................................;/////////////............................
00:00:28 v #6074 > > ................................................................................
00:00:28 v #6075 > > │
00:00:28 v #6076 > > ....................................;/////////////////..........................
00:00:28 v #6077 > > ................................................................................
00:00:28 v #6078 > > │
00:00:28 v #6079 > > .................................;;////////////////////<........................
00:00:28 v #6080 > > ................................................................................
00:00:28 v #6081 > > │
00:00:28 v #6082 > > ...............................;/////////////////////////.......................
00:00:28 v #6083 > > ................................................................................
00:00:28 v #6084 > > │
00:00:28 v #6085 > > .............................;/////////////////////////////.....................
00:00:28 v #6086 > > ................................................................................
00:00:28 v #6087 > > │
00:00:28 v #6088 > > ..........................;;////////////////////////////////<...................
00:00:28 v #6089 > > ...........;;/..................................................................
00:00:28 v #6090 > > │
00:00:28 v #6091 > > ........................;;////////////////////////////////////..................
00:00:28 v #6092 > > ........;;//////................................................................
00:00:28 v #6093 > > │
00:00:28 v #6094 > > ......................;/////////////////////////////////////////................
00:00:28 v #6095 > > ......;;//////////..............................................................
00:00:28 v #6096 > > │
00:00:28 v #6097 > > ...................;;////////////////////////////////////////////<..............
00:00:28 v #6098 > > ....;;;////////////<....................;;......................................
00:00:28 v #6099 > > │
00:00:28 v #6100 > > .................;;////////////////////////////////////////////////<............
00:00:28 v #6101 > > ..;;/////////////////................;;;////....................................
00:00:28 v #6102 > > │
00:00:28 v #6103 > > ................;;>>>////////////////////////////////////////////////...........
00:00:28 v #6104 > > ;;/////////////////////............\;;///////<..................................
00:00:28 v #6105 > > │
00:00:28 v #6106 > > ................;>>>>>>///////////////////////////////////////////////.......;;;
00:00:28 v #6107 > > ;>>/////////////////////.........;;;>//////////.................................
00:00:28 v #6108 > > │
00:00:28 v #6109 > > ...............;>>>>>>>>/////////////////////////////////////////////........;>>
00:00:28 v #6110 > > >>>>>///////////////////.........;>>>>>////////.................................
00:00:28 v #6111 > > │
00:00:28 v #6112 > > ................>>>>>>>>>>/////////////////////////////////////////...........>>
00:00:28 v #6113 > > >>>>>>>///////////////.............>>>>>>////...................................
00:00:28 v #6114 > > │
00:00:28 v #6115 > > ..................>>>>>>>>>>>////////////////////////////////////...............
00:00:28 v #6116 > > >>>>>>>>>///////////................\>>>>>/.....................................
00:00:28 v #6117 > > │
00:00:28 v #6118 > > ....................>>>>>>>>>>//////////////////////////////////................
00:00:28 v #6119 > > ..>>>>>>>>////////..............................................................
00:00:28 v #6120 > > │
00:00:28 v #6121 > > ......................>>>>>>>>>>//////////////////////////////..................
00:00:28 v #6122 > > ....>>>>>>>>////................................................................
00:00:28 v #6123 > > │
00:00:28 v #6124 > > ........................>>>>>>>>>>///////////////////////////...................
00:00:28 v #6125 > > ......>>>>>>>//.................................................................
00:00:28 v #6126 > > │
00:00:28 v #6127 > > ..........................>>>>>>>>>>///////////////////////.....................
00:00:28 v #6128 > > ................................................................................
00:00:28 v #6129 > > │
00:00:28 v #6130 > > ............................>>>>>>>>>>///////////////////.......................
00:00:28 v #6131 > > ................................................................................
00:00:28 v #6132 > > │
00:00:28 v #6133 > > ..............................>>>>>>>>>>////////////////........................
00:00:28 v #6134 > > ................................................................................
00:00:28 v #6135 > > │
00:00:28 v #6136 > > ................................>>>>>>>>>>////////////..........................
00:00:28 v #6137 > > ................................................................................
00:00:28 v #6138 > > │
00:00:28 v #6139 > > ..................................>>>>>>>>>>////////............................
00:00:28 v #6140 > > ................................................................................
00:00:28 v #6141 > > │
00:00:28 v #6142 > > ....................................=>>>>>>>>>/////.............................
00:00:28 v #6143 > > ................................................................................
00:00:28 v #6144 > > │
00:00:28 v #6145 > > ..........................................>>>>>//...............................
00:00:28 v #6146 > > ................................................................................
00:00:28 v #6147 > > │
00:00:28 v #6148 > > .............................................../................................
00:00:28 v #6149 > > ................................................................................
00:00:28 v #6150 > > │
00:00:28 v #6151 > > ................................................................................
00:00:28 v #6152 > > ................................................................................
00:00:28 v #6153 > > │
00:00:28 v #6154 > > ................................................................................
00:00:28 v #6155 > > ................................................................................
00:00:28 v #6156 > > │
00:00:28 v #6157 > > ................................................................................
00:00:28 v #6158 > > ................................................................................
00:00:28 v #6159 > > │
00:00:28 v #6160 > > ................................................................................
00:00:28 v #6161 > > ................................................................................
00:00:28 v #6162 > > │
00:00:28 v #6163 > > ................................................................................
00:00:28 v #6164 > > ................................................................................
00:00:28 v #6165 > > │
00:00:28 v #6166 > > ................................................................................
00:00:28 v #6167 > > ................................................................................
00:00:28 v #6168 > > │
00:00:28 v #6169 > > ................................................................................
00:00:28 v #6170 > > ................................................................................
00:00:28 v #6171 > > │
00:00:28 v #6172 > > ................................................................................
00:00:28 v #6173 > > ................................................................................
00:00:28 v #6174 > > │
00:00:28 v #6175 > > │
00:00:28 v #6176 > > ................................................................................
00:00:28 v #6177 > > ................................................................................
00:00:28 v #6178 > > │
00:00:28 v #6179 > > ................................................................................
00:00:28 v #6180 > > ................................................................................
00:00:28 v #6181 > > │
00:00:28 v #6182 > > ................................................................................
00:00:28 v #6183 > > ................................................................................
00:00:28 v #6184 > > │
00:00:28 v #6185 > > ................................................................................
00:00:28 v #6186 > > ................................................................................
00:00:28 v #6187 > > │
00:00:28 v #6188 > > ................................................................................
00:00:28 v #6189 > > ................................................................................
00:00:28 v #6190 > > │
00:00:28 v #6191 > > ................................................................................
00:00:28 v #6192 > > ................................................................................
00:00:28 v #6193 > > │
00:00:28 v #6194 > > ................................................................................
00:00:28 v #6195 > > ................................................................................
00:00:28 v #6196 > > │
00:00:28 v #6197 > > ............................................;;..................................
00:00:28 v #6198 > > ................................................................................
00:00:28 v #6199 > > │
00:00:28 v #6200 > > ..........................................;;////................................
00:00:28 v #6201 > > ................................................................................
00:00:28 v #6202 > > │
00:00:28 v #6203 > > ........................................;;////////..............................
00:00:28 v #6204 > > ................................................................................
00:00:28 v #6205 > > │
00:00:28 v #6206 > > ......................................;////////////<............................
00:00:28 v #6207 > > ................................................................................
00:00:28 v #6208 > > │
00:00:28 v #6209 > > ....................................;////////////////<..........................
00:00:28 v #6210 > > ................................................................................
00:00:28 v #6211 > > │
00:00:28 v #6212 > > ..................................;////////////////////<........................
00:00:28 v #6213 > > ................................................................................
00:00:28 v #6214 > > │
00:00:28 v #6215 > > ................................;////////////////////////<......................
00:00:28 v #6216 > > ................................................................................
00:00:28 v #6217 > > │
00:00:28 v #6218 > > ..............................;////////////////////////////.....................
00:00:28 v #6219 > > ................................................................................
00:00:28 v #6220 > > │
00:00:28 v #6221 > > ............................;////////////////////////////////...................
00:00:28 v #6222 > > ..........;;//..................................................................
00:00:28 v #6223 > > │
00:00:28 v #6224 > > ..........................;////////////////////////////////////.................
00:00:28 v #6225 > > ........;;//////................................................................
00:00:28 v #6226 > > │
00:00:28 v #6227 > > ........................;///////////////////////////////////////<...............
00:00:28 v #6228 > > .....;;;//////////..............................................................
00:00:28 v #6229 > > │
00:00:28 v #6230 > > ......................;///////////////////////////////////////////<.............
00:00:28 v #6231 > > ...\;;//////////////....................;<......................................
00:00:28 v #6232 > > │
00:00:28 v #6233 > > ....................;;//////////////////////////////////////////////<...........
00:00:28 v #6234 > > ..;;;/////////////////...............;;;///<....................................
00:00:28 v #6235 > > │
00:00:28 v #6236 > > ..................;;>////////////////////////////////////////////////...........
00:00:28 v #6237 > > ;;;/////////////////////...........;;;///////<..................................
00:00:28 v #6238 > > │
00:00:28 v #6239 > > ................;;>>>>>//////////////////////////////////////////////.........;;
00:00:28 v #6240 > > ;;>/////////////////////..........;;;//////////.................................
00:00:28 v #6241 > > │
00:00:28 v #6242 > > ...............;;>>>>>>>>//////////////////////////////////////////.........\;;>
00:00:28 v #6243 > > >>>>>//////////////////..........;;>>>>////////.................................
00:00:28 v #6244 > > │
00:00:28 v #6245 > > ..............;>>>>>>>>>>>>///////////////////////////////////////...........>>>
00:00:28 v #6246 > > >>>>>>>///////////////.............>>>>>>////...................................
00:00:28 v #6247 > > │
00:00:28 v #6248 > > ................>>>>>>>>>>>>>////////////////////////////////////...............
00:00:28 v #6249 > > >>>>>>>>>>//////////.................>>>>>/.....................................
00:00:28 v #6250 > > │
00:00:28 v #6251 > > ..................>>>>>>>>>>>>>>///////////////////////////////.................
00:00:28 v #6252 > > .\>>>>>>>>>////////...................=.........................................
00:00:28 v #6253 > > │
00:00:28 v #6254 > > ....................\>>>>>>>>>>>>>////////////////////////////..................
00:00:28 v #6255 > > ....>>>>>>>>>////...............................................................
00:00:28 v #6256 > > │
00:00:28 v #6257 > > .......................>>>>>>>>>>>>>/////////////////////////...................
00:00:28 v #6258 > > ......>>>>>>>>>/................................................................
00:00:28 v #6259 > > │
00:00:28 v #6260 > > .........................>>>>>>>>>>>>>/////////////////////.....................
00:00:28 v #6261 > > ................................................................................
00:00:28 v #6262 > > │
00:00:28 v #6263 > > ...........................>>>>>>>>>>>>>//////////////////......................
00:00:28 v #6264 > > ................................................................................
00:00:28 v #6265 > > │
00:00:28 v #6266 > > .............................>>>>>>>>>>>>>///////////////.......................
00:00:28 v #6267 > > ................................................................................
00:00:28 v #6268 > > │
00:00:28 v #6269 > > ...............................>>>>>>>>>>>>>>//////////.........................
00:00:28 v #6270 > > ................................................................................
00:00:28 v #6271 > > │
00:00:28 v #6272 > > ..................................>>>>>>>>>>>>>///////..........................
00:00:28 v #6273 > > ................................................................................
00:00:28 v #6274 > > │
00:00:28 v #6275 > > ....................................=>>>>>>>>>>>>////...........................
00:00:28 v #6276 > > ................................................................................
00:00:28 v #6277 > > │
00:00:28 v #6278 > > ............................................=>>>>>/.............................
00:00:28 v #6279 > > ................................................................................
00:00:28 v #6280 > > │
00:00:28 v #6281 > > ................................................................................
00:00:28 v #6282 > > ................................................................................
00:00:28 v #6283 > > │
00:00:28 v #6284 > > ................................................................................
00:00:28 v #6285 > > ................................................................................
00:00:28 v #6286 > > │
00:00:28 v #6287 > > ................................................................................
00:00:28 v #6288 > > ................................................................................
00:00:28 v #6289 > > │
00:00:28 v #6290 > > ................................................................................
00:00:28 v #6291 > > ................................................................................
00:00:28 v #6292 > > │
00:00:28 v #6293 > > ................................................................................
00:00:28 v #6294 > > ................................................................................
00:00:28 v #6295 > > │
00:00:28 v #6296 > > ................................................................................
00:00:28 v #6297 > > ................................................................................
00:00:28 v #6298 > > │
00:00:28 v #6299 > > ................................................................................
00:00:28 v #6300 > > ................................................................................
00:00:28 v #6301 > > │
00:00:28 v #6302 > > ................................................................................
00:00:28 v #6303 > > ................................................................................
00:00:28 v #6304 > > │
00:00:28 v #6305 > > ................................................................................
00:00:28 v #6306 > > ................................................................................
00:00:28 v #6307 > > │
00:00:28 v #6308 > > │
00:00:28 v #6309 > > ................................................................................
00:00:28 v #6310 > > ................................................................................
00:00:28 v #6311 > > │
00:00:28 v #6312 > > ................................................................................
00:00:28 v #6313 > > ................................................................................
00:00:28 v #6314 > > │
00:00:28 v #6315 > > ................................................................................
00:00:28 v #6316 > > ................................................................................
00:00:28 v #6317 > > │
00:00:28 v #6318 > > ................................................................................
00:00:28 v #6319 > > ................................................................................
00:00:28 v #6320 > > │
00:00:28 v #6321 > > ................................................................................
00:00:28 v #6322 > > ................................................................................
00:00:28 v #6323 > > │
00:00:28 v #6324 > > ................................................................................
00:00:28 v #6325 > > ................................................................................
00:00:28 v #6326 > > │
00:00:28 v #6327 > > ................................................................................
00:00:28 v #6328 > > ................................................................................
00:00:28 v #6329 > > │
00:00:28 v #6330 > > ...........................................;/<..................................
00:00:28 v #6331 > > ................................................................................
00:00:28 v #6332 > > │
00:00:28 v #6333 > > .........................................;;////<................................
00:00:28 v #6334 > > ................................................................................
00:00:28 v #6335 > > │
00:00:28 v #6336 > > .......................................;;////////<..............................
00:00:28 v #6337 > > ................................................................................
00:00:28 v #6338 > > │
00:00:28 v #6339 > > .....................................;;////////////<............................
00:00:28 v #6340 > > ................................................................................
00:00:28 v #6341 > > │
00:00:28 v #6342 > > ...................................;;;///////////////<..........................
00:00:28 v #6343 > > ................................................................................
00:00:28 v #6344 > > │
00:00:28 v #6345 > > .................................;;////////////////////<........................
00:00:28 v #6346 > > ................................................................................
00:00:28 v #6347 > > │
00:00:28 v #6348 > > ................................;;///////////////////////<......................
00:00:28 v #6349 > > ................................................................................
00:00:28 v #6350 > > │
00:00:28 v #6351 > > ..............................;;///////////////////////////<....................
00:00:28 v #6352 > > ................................................................................
00:00:28 v #6353 > > │
00:00:28 v #6354 > > ............................;;///////////////////////////////<..................
00:00:28 v #6355 > > ..........;;//..................................................................
00:00:28 v #6356 > > │
00:00:28 v #6357 > > ..........................;;;//////////////////////////////////.................
00:00:28 v #6358 > > .......;;;//////................................................................
00:00:28 v #6359 > > │
00:00:28 v #6360 > > .........................;;//////////////////////////////////////...............
00:00:28 v #6361 > > .....;;;//////////..............................................................
00:00:28 v #6362 > > │
00:00:28 v #6363 > > .......................;;//////////////////////////////////////////<............
00:00:28 v #6364 > > ...;;;;/////////////....................;/......................................
00:00:28 v #6365 > > │
00:00:28 v #6366 > > .....................;;//////////////////////////////////////////////...........
00:00:28 v #6367 > > .;;;;/////////////////...............;;;////....................................
00:00:28 v #6368 > > │
00:00:28 v #6369 > > ...................;;;///////////////////////////////////////////////...........
00:00:28 v #6370 > > ;;;;////////////////////...........;;;////////..................................
00:00:28 v #6371 > > │
00:00:28 v #6372 > > ..................;;>>>>////////////////////////////////////////////..........;;
00:00:28 v #6373 > > ;;;>////////////////////..........;;;//////////.................................
00:00:28 v #6374 > > │
00:00:28 v #6375 > > ................;;>>>>>>>>////////////////////////////////////////...........;;;
00:00:28 v #6376 > > >>>>>>/////////////////..........;;>>>>///////..................................
00:00:28 v #6377 > > │
00:00:28 v #6378 > > ..............;;>>>>>>>>>>>>/////////////////////////////////////...........;>>>
00:00:28 v #6379 > > >>>>>>>>/////////////.............>>>>>>>>///...................................
00:00:28 v #6380 > > │
00:00:28 v #6381 > > ..............>>>>>>>>>>>>>>>>>/////////////////////////////////...............>
00:00:28 v #6382 > > >>>>>>>>>>//////////................\>>>>>>/....................................
00:00:28 v #6383 > > │
00:00:28 v #6384 > > ................\>>>>>>>>>>>>>>>>//////////////////////////////.................
00:00:28 v #6385 > > .>>>>>>>>>>>///////....................=........................................
00:00:28 v #6386 > > │
00:00:28 v #6387 > > ...................>>>>>>>>>>>>>>>>///////////////////////////..................
00:00:28 v #6388 > > ...>>>>>>>>>>>>///..............................................................
00:00:28 v #6389 > > │
00:00:28 v #6390 > > .....................\>>>>>>>>>>>>>>>>///////////////////////...................
00:00:28 v #6391 > > ......>>>>>>>>>>................................................................
00:00:28 v #6392 > > │
00:00:28 v #6393 > > ........................>>>>>>>>>>>>>>>>////////////////////....................
00:00:28 v #6394 > > ................................................................................
00:00:28 v #6395 > > │
00:00:28 v #6396 > > ..........................>>>>>>>>>>>>>>>>/////////////////.....................
00:00:28 v #6397 > > ................................................................................
00:00:28 v #6398 > > │
00:00:28 v #6399 > > .............................>>>>>>>>>>>>>>>>/////////////......................
00:00:28 v #6400 > > ................................................................................
00:00:28 v #6401 > > │
00:00:28 v #6402 > > ...............................>>>>>>>>>>>>>>>>/////////........................
00:00:28 v #6403 > > ................................................................................
00:00:28 v #6404 > > │
00:00:28 v #6405 > > ..................................>>>>>>>>>>>>>>>>/////.........................
00:00:28 v #6406 > > ................................................................................
00:00:28 v #6407 > > │
00:00:28 v #6408 > > ....................................=>>>>>>>>>>>>>>>//..........................
00:00:28 v #6409 > > ................................................................................
00:00:28 v #6410 > > │
00:00:28 v #6411 > > .................................................>>>>...........................
00:00:28 v #6412 > > ................................................................................
00:00:28 v #6413 > > │
00:00:28 v #6414 > > ................................................................................
00:00:28 v #6415 > > ................................................................................
00:00:28 v #6416 > > │
00:00:28 v #6417 > > ................................................................................
00:00:28 v #6418 > > ................................................................................
00:00:28 v #6419 > > │
00:00:28 v #6420 > > ................................................................................
00:00:28 v #6421 > > ................................................................................
00:00:28 v #6422 > > │
00:00:28 v #6423 > > ................................................................................
00:00:28 v #6424 > > ................................................................................
00:00:28 v #6425 > > │
00:00:28 v #6426 > > ................................................................................
00:00:28 v #6427 > > ................................................................................
00:00:28 v #6428 > > │
00:00:28 v #6429 > > ................................................................................
00:00:28 v #6430 > > ................................................................................
00:00:28 v #6431 > > │
00:00:28 v #6432 > > ................................................................................
00:00:28 v #6433 > > ................................................................................
00:00:28 v #6434 > > │
00:00:28 v #6435 > > ................................................................................
00:00:28 v #6436 > > ................................................................................
00:00:28 v #6437 > > │
00:00:28 v #6438 > > ................................................................................
00:00:28 v #6439 > > ................................................................................
00:00:28 v #6440 > > │
00:00:28 v #6441 > > │
00:00:28 v #6442 > > ................................................................................
00:00:28 v #6443 > > ................................................................................
00:00:28 v #6444 > > │
00:00:28 v #6445 > > ................................................................................
00:00:28 v #6446 > > ................................................................................
00:00:28 v #6447 > > │
00:00:28 v #6448 > > ................................................................................
00:00:28 v #6449 > > ................................................................................
00:00:28 v #6450 > > │
00:00:28 v #6451 > > ................................................................................
00:00:28 v #6452 > > ................................................................................
00:00:28 v #6453 > > │
00:00:28 v #6454 > > ................................................................................
00:00:28 v #6455 > > ................................................................................
00:00:28 v #6456 > > │
00:00:28 v #6457 > > ................................................................................
00:00:28 v #6458 > > ................................................................................
00:00:28 v #6459 > > │
00:00:28 v #6460 > > ................................................................................
00:00:28 v #6461 > > ................................................................................
00:00:28 v #6462 > > │
00:00:28 v #6463 > > ..........................................;//...................................
00:00:28 v #6464 > > ................................................................................
00:00:28 v #6465 > > │
00:00:28 v #6466 > > ........................................;;/////.................................
00:00:28 v #6467 > > ................................................................................
00:00:28 v #6468 > > │
00:00:28 v #6469 > > ......................................;;/////////...............................
00:00:28 v #6470 > > ................................................................................
00:00:28 v #6471 > > │
00:00:28 v #6472 > > ....................................;;;////////////.............................
00:00:28 v #6473 > > ................................................................................
00:00:28 v #6474 > > │
00:00:28 v #6475 > > ..................................;;;////////////////...........................
00:00:28 v #6476 > > ................................................................................
00:00:28 v #6477 > > │
00:00:28 v #6478 > > ................................;;;;///////////////////<........................
00:00:28 v #6479 > > ................................................................................
00:00:28 v #6480 > > │
00:00:28 v #6481 > > ..............................;;;;///////////////////////<......................
00:00:28 v #6482 > > ................................................................................
00:00:28 v #6483 > > │
00:00:28 v #6484 > > .............................;;;;//////////////////////////<....................
00:00:28 v #6485 > > ................................................................................
00:00:28 v #6486 > > │
00:00:28 v #6487 > > ...........................;;;;///////////////////////////////..................
00:00:28 v #6488 > > .........;;;//..................................................................
00:00:28 v #6489 > > │
00:00:28 v #6490 > > ..........................;;;;//////////////////////////////////................
00:00:28 v #6491 > > ......;;;;//////................................................................
00:00:28 v #6492 > > │
00:00:28 v #6493 > > ........................;;;;//////////////////////////////////////..............
00:00:28 v #6494 > > ....;;;;;/////////..............................................................
00:00:28 v #6495 > > │
00:00:28 v #6496 > > ......................;;;;;/////////////////////////////////////////............
00:00:28 v #6497 > > ...;;;;/////////////<..................<;<......................................
00:00:28 v #6498 > > │
00:00:28 v #6499 > > .....................;;;;///////////////////////////////////////////............
00:00:28 v #6500 > > .;;;;;/////////////////..............;;;////....................................
00:00:28 v #6501 > > │
00:00:28 v #6502 > > ...................;;;;;////////////////////////////////////////////............
00:00:28 v #6503 > > ;;;;////////////////////...........;;;;///////..................................
00:00:28 v #6504 > > │
00:00:28 v #6505 > > ..................;;;;;>///////////////////////////////////////////...........;;
00:00:28 v #6506 > > ;;;>////////////////////..........;;;//////////.................................
00:00:28 v #6507 > > │
00:00:28 v #6508 > > ................;;;;;>>>>>////////////////////////////////////////...........;;;
00:00:28 v #6509 > > ;;>>>>/////////////////..........;;;>>>>//////..................................
00:00:28 v #6510 > > │
00:00:28 v #6511 > > ...............;;;>>>>>>>>>>>////////////////////////////////////...........;;>>
00:00:28 v #6512 > > >>>>>>>>>/////////////............>>>>>>>>///...................................
00:00:28 v #6513 > > │
00:00:28 v #6514 > > .............;;;>>>>>>>>>>>>>>>>////////////////////////////////..............>>
00:00:28 v #6515 > > >>>>>>>>>>>/////////................>>>>>>>/....................................
00:00:28 v #6516 > > │
00:00:28 v #6517 > > ..............\>>>>>>>>>>>>>>>>>>>/////////////////////////////.................
00:00:28 v #6518 > > .>>>>>>>>>>>>>/////....................>........................................
00:00:28 v #6519 > > │
00:00:28 v #6520 > > .................>>>>>>>>>>>>>>>>>>>>/////////////////////////..................
00:00:28 v #6521 > > ...>>>>>>>>>>>>>//..............................................................
00:00:28 v #6522 > > │
00:00:28 v #6523 > > ....................>>>>>>>>>>>>>>>>>>>>/////////////////////...................
00:00:28 v #6524 > > ......>>>>>>>>>>>...............................................................
00:00:28 v #6525 > > │
00:00:28 v #6526 > > .......................>>>>>>>>>>>>>>>>>>>//////////////////....................
00:00:28 v #6527 > > ................................................................................
00:00:28 v #6528 > > │
00:00:28 v #6529 > > ..........................>>>>>>>>>>>>>>>>>>>//////////////.....................
00:00:28 v #6530 > > ................................................................................
00:00:28 v #6531 > > │
00:00:28 v #6532 > > ............................>>>>>>>>>>>>>>>>>>>>///////////.....................
00:00:28 v #6533 > > ................................................................................
00:00:28 v #6534 > > │
00:00:28 v #6535 > > ...............................>>>>>>>>>>>>>>>>>>>////////......................
00:00:28 v #6536 > > ................................................................................
00:00:28 v #6537 > > │
00:00:28 v #6538 > > ..................................>>>>>>>>>>>>>>>>>>>////.......................
00:00:28 v #6539 > > ................................................................................
00:00:28 v #6540 > > │
00:00:28 v #6541 > > .....................................>>>>>>>>>>>>>>>>>>/........................
00:00:28 v #6542 > > ................................................................................
00:00:28 v #6543 > > │
00:00:28 v #6544 > > ................................................................................
00:00:28 v #6545 > > ................................................................................
00:00:28 v #6546 > > │
00:00:28 v #6547 > > ................................................................................
00:00:28 v #6548 > > ................................................................................
00:00:28 v #6549 > > │
00:00:28 v #6550 > > ................................................................................
00:00:28 v #6551 > > ................................................................................
00:00:28 v #6552 > > │
00:00:28 v #6553 > > ................................................................................
00:00:28 v #6554 > > ................................................................................
00:00:28 v #6555 > > │
00:00:28 v #6556 > > ................................................................................
00:00:28 v #6557 > > ................................................................................
00:00:28 v #6558 > > │
00:00:28 v #6559 > > ................................................................................
00:00:28 v #6560 > > ................................................................................
00:00:28 v #6561 > > │
00:00:28 v #6562 > > ................................................................................
00:00:28 v #6563 > > ................................................................................
00:00:28 v #6564 > > │
00:00:28 v #6565 > > ................................................................................
00:00:28 v #6566 > > ................................................................................
00:00:28 v #6567 > > │
00:00:28 v #6568 > > ................................................................................
00:00:28 v #6569 > > ................................................................................
00:00:28 v #6570 > > │
00:00:28 v #6571 > > ................................................................................
00:00:28 v #6572 > > ................................................................................
00:00:28 v #6573 > > │
00:00:28 v #6574 > > │
00:00:28 v #6575 > > ................................................................................
00:00:28 v #6576 > > ................................................................................
00:00:28 v #6577 > > │
00:00:28 v #6578 > > ................................................................................
00:00:28 v #6579 > > ................................................................................
00:00:28 v #6580 > > │
00:00:28 v #6581 > > ................................................................................
00:00:28 v #6582 > > ................................................................................
00:00:28 v #6583 > > │
00:00:28 v #6584 > > ................................................................................
00:00:28 v #6585 > > ................................................................................
00:00:28 v #6586 > > │
00:00:28 v #6587 > > ................................................................................
00:00:28 v #6588 > > ................................................................................
00:00:28 v #6589 > > │
00:00:28 v #6590 > > ................................................................................
00:00:28 v #6591 > > ................................................................................
00:00:28 v #6592 > > │
00:00:28 v #6593 > > ................................................................................
00:00:28 v #6594 > > ................................................................................
00:00:28 v #6595 > > │
00:00:28 v #6596 > > .........................................;;/....................................
00:00:28 v #6597 > > ................................................................................
00:00:28 v #6598 > > │
00:00:28 v #6599 > > .......................................;;/////<.................................
00:00:28 v #6600 > > ................................................................................
00:00:28 v #6601 > > │
00:00:28 v #6602 > > .....................................;;;/////////...............................
00:00:28 v #6603 > > ................................................................................
00:00:28 v #6604 > > │
00:00:28 v #6605 > > ...................................;;;;////////////.............................
00:00:28 v #6606 > > ................................................................................
00:00:28 v #6607 > > │
00:00:28 v #6608 > > .................................;;;;;///////////////...........................
00:00:28 v #6609 > > ................................................................................
00:00:28 v #6610 > > │
00:00:28 v #6611 > > ...............................;;;;;///////////////////<........................
00:00:28 v #6612 > > ................................................................................
00:00:28 v #6613 > > │
00:00:28 v #6614 > > .............................;;;;;;//////////////////////<......................
00:00:28 v #6615 > > ................................................................................
00:00:28 v #6616 > > │
00:00:28 v #6617 > > ...........................;;;;;;;//////////////////////////....................
00:00:28 v #6618 > > ................................................................................
00:00:28 v #6619 > > │
00:00:28 v #6620 > > ..........................;;;;;;//////////////////////////////..................
00:00:28 v #6621 > > .........;;//<..................................................................
00:00:28 v #6622 > > │
00:00:28 v #6623 > > .........................;;;;;;/////////////////////////////////................
00:00:28 v #6624 > > ......;;;;//////................................................................
00:00:28 v #6625 > > │
00:00:28 v #6626 > > .......................;;;;;;;////////////////////////////////////<.............
00:00:28 v #6627 > > ...;;;;;;/////////<.............................................................
00:00:28 v #6628 > > │
00:00:28 v #6629 > > ......................;;;;;;;///////////////////////////////////////............
00:00:28 v #6630 > > ..;;;;;//////////////..................;;.......................................
00:00:28 v #6631 > > │
00:00:28 v #6632 > > .....................;;;;;;////////////////////////////////////////.............
00:00:28 v #6633 > > .;;;;;;////////////////.............;;;;////....................................
00:00:28 v #6634 > > │
00:00:28 v #6635 > > ...................;;;;;;;////////////////////////////////////////..............
00:00:28 v #6636 > > ;;;;;;//////////////////...........;;;;///////<.................................
00:00:28 v #6637 > > │
00:00:28 v #6638 > > ..................;;;;;;;/////////////////////////////////////////............\;
00:00:28 v #6639 > > ;;;;///////////////////...........;;;;/////////.................................
00:00:28 v #6640 > > │
00:00:28 v #6641 > > .................;;;;;;;>>>//////////////////////////////////////............;;;
00:00:28 v #6642 > > ;;;>>>>///////////////...........;;;;>>>//////..................................
00:00:28 v #6643 > > │
00:00:28 v #6644 > > ...............;;;;;;>>>>>>>>>>/////////////////////////////////............;;;>
00:00:28 v #6645 > > >>>>>>>>>////////////............\>>>>>>>>>//...................................
00:00:28 v #6646 > > │
00:00:28 v #6647 > > ..............;;;;>>>>>>>>>>>>>>>///////////////////////////////.............>>>
00:00:28 v #6648 > > >>>>>>>>>>>>/////////...............>>>>>>>>....................................
00:00:28 v #6649 > > │
00:00:28 v #6650 > > .............;;>>>>>>>>>>>>>>>>>>>>>///////////////////////////.................
00:00:28 v #6651 > > >>>>>>>>>>>>>>>/////...................>........................................
00:00:28 v #6652 > > │
00:00:28 v #6653 > > ...............>>>>>>>>>>>>>>>>>>>>>>>>///////////////////////..................
00:00:28 v #6654 > > ...>>>>>>>>>>>>>>>/.............................................................
00:00:28 v #6655 > > │
00:00:28 v #6656 > > ..................>>>>>>>>>>>>>>>>>>>>>>>>////////////////////..................
00:00:28 v #6657 > > ......>>>>>>>>>>>/..............................................................
00:00:28 v #6658 > > │
00:00:28 v #6659 > > .....................>>>>>>>>>>>>>>>>>>>>>>>>////////////////...................
00:00:28 v #6660 > > ................................................................................
00:00:28 v #6661 > > │
00:00:28 v #6662 > > ........................>>>>>>>>>>>>>>>>>>>>>>>>////////////....................
00:00:28 v #6663 > > ................................................................................
00:00:28 v #6664 > > │
00:00:28 v #6665 > > ............................>>>>>>>>>>>>>>>>>>>>>>>/////////....................
00:00:28 v #6666 > > ................................................................................
00:00:28 v #6667 > > │
00:00:28 v #6668 > > ...............................>>>>>>>>>>>>>>>>>>>>>>>/////.....................
00:00:28 v #6669 > > ................................................................................
00:00:28 v #6670 > > │
00:00:28 v #6671 > > ..................................>>>>>>>>>>>>>>>>>>>>>>//......................
00:00:28 v #6672 > > ................................................................................
00:00:28 v #6673 > > │
00:00:28 v #6674 > > .....................................>>>>>>>>>>>>>>>>>>>>/......................
00:00:28 v #6675 > > ................................................................................
00:00:28 v #6676 > > │
00:00:28 v #6677 > > ................................................................................
00:00:28 v #6678 > > ................................................................................
00:00:28 v #6679 > > │
00:00:28 v #6680 > > ................................................................................
00:00:28 v #6681 > > ................................................................................
00:00:28 v #6682 > > │
00:00:28 v #6683 > > ................................................................................
00:00:28 v #6684 > > ................................................................................
00:00:28 v #6685 > > │
00:00:28 v #6686 > > ................................................................................
00:00:28 v #6687 > > ................................................................................
00:00:28 v #6688 > > │
00:00:28 v #6689 > > ................................................................................
00:00:28 v #6690 > > ................................................................................
00:00:28 v #6691 > > │
00:00:28 v #6692 > > ................................................................................
00:00:28 v #6693 > > ................................................................................
00:00:28 v #6694 > > │
00:00:28 v #6695 > > ................................................................................
00:00:28 v #6696 > > ................................................................................
00:00:28 v #6697 > > │
00:00:28 v #6698 > > ................................................................................
00:00:28 v #6699 > > ................................................................................
00:00:28 v #6700 > > │
00:00:28 v #6701 > > ................................................................................
00:00:28 v #6702 > > ................................................................................
00:00:28 v #6703 > > │
00:00:28 v #6704 > > ................................................................................
00:00:28 v #6705 > > ................................................................................
00:00:28 v #6706 > > │
00:00:28 v #6707 > > │
00:00:28 v #6708 > > ................................................................................
00:00:28 v #6709 > > ................................................................................
00:00:28 v #6710 > > │
00:00:28 v #6711 > > ................................................................................
00:00:28 v #6712 > > ................................................................................
00:00:28 v #6713 > > │
00:00:28 v #6714 > > ................................................................................
00:00:28 v #6715 > > ................................................................................
00:00:28 v #6716 > > │
00:00:28 v #6717 > > ................................................................................
00:00:28 v #6718 > > ................................................................................
00:00:28 v #6719 > > │
00:00:28 v #6720 > > ................................................................................
00:00:28 v #6721 > > ................................................................................
00:00:28 v #6722 > > │
00:00:28 v #6723 > > ................................................................................
00:00:28 v #6724 > > ................................................................................
00:00:28 v #6725 > > │
00:00:28 v #6726 > > ................................................................................
00:00:28 v #6727 > > ................................................................................
00:00:28 v #6728 > > │
00:00:28 v #6729 > > ........................................;;/<....................................
00:00:28 v #6730 > > ................................................................................
00:00:28 v #6731 > > │
00:00:28 v #6732 > > ......................................;;;/////..................................
00:00:28 v #6733 > > ................................................................................
00:00:28 v #6734 > > │
00:00:28 v #6735 > > ....................................;;;;////////................................
00:00:28 v #6736 > > ................................................................................
00:00:28 v #6737 > > │
00:00:28 v #6738 > > ..................................;;;;;////////////.............................
00:00:28 v #6739 > > ................................................................................
00:00:28 v #6740 > > │
00:00:28 v #6741 > > ................................;;;;;;///////////////...........................
00:00:28 v #6742 > > ................................................................................
00:00:28 v #6743 > > │
00:00:28 v #6744 > > ..............................;;;;;;;//////////////////.........................
00:00:28 v #6745 > > ................................................................................
00:00:28 v #6746 > > │
00:00:28 v #6747 > > ............................;;;;;;;;//////////////////////......................
00:00:28 v #6748 > > ................................................................................
00:00:28 v #6749 > > │
00:00:28 v #6750 > > ..........................;;;;;;;;//////////////////////////....................
00:00:28 v #6751 > > ................................................................................
00:00:28 v #6752 > > │
00:00:28 v #6753 > > .........................;;;;;;;;/////////////////////////////<.................
00:00:28 v #6754 > > ........;;;//...................................................................
00:00:28 v #6755 > > │
00:00:28 v #6756 > > ........................;;;;;;;;////////////////////////////////<...............
00:00:28 v #6757 > > .....;;;;;//////................................................................
00:00:28 v #6758 > > │
00:00:28 v #6759 > > .......................;;;;;;;;////////////////////////////////////.............
00:00:28 v #6760 > > ..<;;;;;;/////////<.............................................................
00:00:28 v #6761 > > │
00:00:28 v #6762 > > .....................\;;;;;;;;/////////////////////////////////////.............
00:00:28 v #6763 > > ..;;;;;;/////////////..................;;<......................................
00:00:28 v #6764 > > │
00:00:28 v #6765 > > ....................;;;;;;;;;/////////////////////////////////////..............
00:00:28 v #6766 > > \;;;;;;/////////////////............;;;;////....................................
00:00:28 v #6767 > > │
00:00:28 v #6768 > > ...................;;;;;;;;;//////////////////////////////////////..............
00:00:28 v #6769 > > ;;;;;;/////////////////............;;;;////////.................................
00:00:28 v #6770 > > │
00:00:28 v #6771 > > ..................;;;;;;;;;//////////////////////////////////////.............\;
00:00:28 v #6772 > > ;;;;;//////////////////...........;;;;/////////.................................
00:00:28 v #6773 > > │
00:00:28 v #6774 > > .................;;;;;;;;;;>/////////////////////////////////////............\;;
00:00:28 v #6775 > > ;;;;;>>///////////////...........;;;;;>>>/////..................................
00:00:28 v #6776 > > │
00:00:28 v #6777 > > ................;;;;;;;;>>>>>>>>////////////////////////////////............\;;;
00:00:28 v #6778 > > ;>>>>>>>>>////////////...........;>>>>>>>>>//...................................
00:00:28 v #6779 > > │
00:00:28 v #6780 > > ...............;;;;;;>>>>>>>>>>>>>>/////////////////////////////............;>>>
00:00:28 v #6781 > > >>>>>>>>>>>>>////////...............>>>>>>>>/...................................
00:00:28 v #6782 > > │
00:00:28 v #6783 > > ..............;;;;>>>>>>>>>>>>>>>>>>>>/////////////////////////................>
00:00:28 v #6784 > > >>>>>>>>>>>>>>>>////...................=>.......................................
00:00:28 v #6785 > > │
00:00:28 v #6786 > > .............;>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////////.................
00:00:28 v #6787 > > ..\>>>>>>>>>>>>>>>>.............................................................
00:00:28 v #6788 > > │
00:00:28 v #6789 > > ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////..................
00:00:28 v #6790 > > ......>>>>>>>>>=>...............................................................
00:00:28 v #6791 > > │
00:00:28 v #6792 > > ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////..................
00:00:28 v #6793 > > ................................................................................
00:00:28 v #6794 > > │
00:00:28 v #6795 > > .......................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////////...................
00:00:28 v #6796 > > ................................................................................
00:00:28 v #6797 > > │
00:00:28 v #6798 > > ...........................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////...................
00:00:28 v #6799 > > ................................................................................
00:00:28 v #6800 > > │
00:00:28 v #6801 > > ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>///....................
00:00:28 v #6802 > > ................................................................................
00:00:28 v #6803 > > │
00:00:28 v #6804 > > ..................................>>>>>>>>>>>>>>>>>>>>>>>>>/....................
00:00:28 v #6805 > > ................................................................................
00:00:28 v #6806 > > │
00:00:28 v #6807 > > ......................................>>>>>=>=>>................................
00:00:28 v #6808 > > ................................................................................
00:00:28 v #6809 > > │
00:00:28 v #6810 > > ................................................................................
00:00:28 v #6811 > > ................................................................................
00:00:28 v #6812 > > │
00:00:28 v #6813 > > ................................................................................
00:00:28 v #6814 > > ................................................................................
00:00:28 v #6815 > > │
00:00:28 v #6816 > > ................................................................................
00:00:28 v #6817 > > ................................................................................
00:00:28 v #6818 > > │
00:00:28 v #6819 > > ................................................................................
00:00:28 v #6820 > > ................................................................................
00:00:28 v #6821 > > │
00:00:28 v #6822 > > ................................................................................
00:00:28 v #6823 > > ................................................................................
00:00:28 v #6824 > > │
00:00:28 v #6825 > > ................................................................................
00:00:28 v #6826 > > ................................................................................
00:00:28 v #6827 > > │
00:00:28 v #6828 > > ................................................................................
00:00:28 v #6829 > > ................................................................................
00:00:28 v #6830 > > │
00:00:28 v #6831 > > ................................................................................
00:00:28 v #6832 > > ................................................................................
00:00:28 v #6833 > > │
00:00:28 v #6834 > > ................................................................................
00:00:28 v #6835 > > ................................................................................
00:00:28 v #6836 > > │
00:00:28 v #6837 > > ................................................................................
00:00:28 v #6838 > > ................................................................................
00:00:28 v #6839 > > │
00:00:28 v #6840 > > │
00:00:28 v #6841 > > ................................................................................
00:00:28 v #6842 > > ................................................................................
00:00:28 v #6843 > > │
00:00:28 v #6844 > > ................................................................................
00:00:28 v #6845 > > ................................................................................
00:00:28 v #6846 > > │
00:00:28 v #6847 > > ................................................................................
00:00:28 v #6848 > > ................................................................................
00:00:28 v #6849 > > │
00:00:28 v #6850 > > ................................................................................
00:00:28 v #6851 > > ................................................................................
00:00:28 v #6852 > > │
00:00:28 v #6853 > > ................................................................................
00:00:28 v #6854 > > ................................................................................
00:00:28 v #6855 > > │
00:00:28 v #6856 > > ................................................................................
00:00:28 v #6857 > > ................................................................................
00:00:28 v #6858 > > │
00:00:28 v #6859 > > ................................................................................
00:00:28 v #6860 > > ................................................................................
00:00:28 v #6861 > > │
00:00:28 v #6862 > > .......................................;;//.....................................
00:00:28 v #6863 > > ................................................................................
00:00:28 v #6864 > > │
00:00:28 v #6865 > > .....................................;;;/////<..................................
00:00:28 v #6866 > > ................................................................................
00:00:28 v #6867 > > │
00:00:28 v #6868 > > ...................................;;;;/////////................................
00:00:28 v #6869 > > ................................................................................
00:00:28 v #6870 > > │
00:00:28 v #6871 > > .................................;;;;;;///////////<.............................
00:00:28 v #6872 > > ................................................................................
00:00:28 v #6873 > > │
00:00:28 v #6874 > > ...............................;;;;;;;///////////////...........................
00:00:28 v #6875 > > ................................................................................
00:00:28 v #6876 > > │
00:00:28 v #6877 > > .............................;;;;;;;;//////////////////.........................
00:00:28 v #6878 > > ................................................................................
00:00:28 v #6879 > > │
00:00:28 v #6880 > > ...........................;;;;;;;;;//////////////////////......................
00:00:28 v #6881 > > ................................................................................
00:00:28 v #6882 > > │
00:00:28 v #6883 > > .........................;;;;;;;;;;/////////////////////////....................
00:00:28 v #6884 > > ................................................................................
00:00:28 v #6885 > > │
00:00:28 v #6886 > > ........................;;;;;;;;;;;///////////////////////////<.................
00:00:28 v #6887 > > ........;;;//...................................................................
00:00:28 v #6888 > > │
00:00:28 v #6889 > > .......................;;;;;;;;;;;///////////////////////////////...............
00:00:28 v #6890 > > .....;;;;;//////................................................................
00:00:28 v #6891 > > │
00:00:28 v #6892 > > ......................;;;;;;;;;;;/////////////////////////////////..............
00:00:28 v #6893 > > ..;;;;;;;/////////<.............................................................
00:00:28 v #6894 > > │
00:00:28 v #6895 > > .....................;;;;;;;;;;;//////////////////////////////////..............
00:00:28 v #6896 > > .;;;;;;;/////////////..................;;<......................................
00:00:28 v #6897 > > │
00:00:28 v #6898 > > ....................;;;;;;;;;;;//////////////////////////////////...............
00:00:28 v #6899 > > ;;;;;;;;///////////////.............;;;;////<...................................
00:00:28 v #6900 > > │
00:00:28 v #6901 > > ...................;;;;;;;;;;;;//////////////////////////////////..............;
00:00:28 v #6902 > > ;;;;;;;////////////////............;;;;////////.................................
00:00:28 v #6903 > > │
00:00:28 v #6904 > > ..................;;;;;;;;;;;;///////////////////////////////////..............;
00:00:28 v #6905 > > ;;;;;;/////////////////...........;;;;;////////.................................
00:00:28 v #6906 > > │
00:00:28 v #6907 > > .................;;;;;;;;;;;;///////////////////////////////////..............;;
00:00:28 v #6908 > > ;;;;;;>>//////////////...........;;;;;>>>/////..................................
00:00:28 v #6909 > > │
00:00:28 v #6910 > > ................;;;;;;;;;;;;>>>>>///////////////////////////////.............;;;
00:00:28 v #6911 > > ;;>>>>>>>>>///////////...........;>>>>>>>>>>//..................................
00:00:28 v #6912 > > │
00:00:28 v #6913 > > ...............;;;;;;;;;>>>>>>>>>>>>////////////////////////////............\;;>
00:00:28 v #6914 > > >>>>>>>>>>>>>>///////...............>>>>>>>>>...................................
00:00:28 v #6915 > > │
00:00:28 v #6916 > > ..............;;;;;;;>>>>>>>>>>>>>>>>>>>///////////////////////...............\>
00:00:28 v #6917 > > >>>>>>>>>>>>>>>>>>///..................>=.......................................
00:00:28 v #6918 > > │
00:00:28 v #6919 > > .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>////////////////////.................
00:00:28 v #6920 > > ..>>>>>>>>>>>>>>>>>>............................................................
00:00:28 v #6921 > > │
00:00:28 v #6922 > > .............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////////.................
00:00:28 v #6923 > > ......>>>>>>>>>>=...............................................................
00:00:28 v #6924 > > │
00:00:28 v #6925 > > .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////..................
00:00:28 v #6926 > > ................................................................................
00:00:28 v #6927 > > │
00:00:28 v #6928 > > ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////..................
00:00:28 v #6929 > > ................................................................................
00:00:28 v #6930 > > │
00:00:28 v #6931 > > ..........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////..................
00:00:28 v #6932 > > ................................................................................
00:00:28 v #6933 > > │
00:00:28 v #6934 > > ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//..................
00:00:28 v #6935 > > ................................................................................
00:00:28 v #6936 > > │
00:00:28 v #6937 > > ..................................>>>>>>>>>>>>>>>>>>>>>>>>>>>...................
00:00:28 v #6938 > > ................................................................................
00:00:28 v #6939 > > │
00:00:28 v #6940 > > ......................................>>>==.....................................
00:00:28 v #6941 > > ................................................................................
00:00:28 v #6942 > > │
00:00:28 v #6943 > > ................................................................................
00:00:28 v #6944 > > ................................................................................
00:00:28 v #6945 > > │
00:00:28 v #6946 > > ................................................................................
00:00:28 v #6947 > > ................................................................................
00:00:28 v #6948 > > │
00:00:28 v #6949 > > ................................................................................
00:00:28 v #6950 > > ................................................................................
00:00:28 v #6951 > > │
00:00:28 v #6952 > > ................................................................................
00:00:28 v #6953 > > ................................................................................
00:00:28 v #6954 > > │
00:00:28 v #6955 > > ................................................................................
00:00:28 v #6956 > > ................................................................................
00:00:28 v #6957 > > │
00:00:28 v #6958 > > ................................................................................
00:00:28 v #6959 > > ................................................................................
00:00:28 v #6960 > > │
00:00:28 v #6961 > > ................................................................................
00:00:28 v #6962 > > ................................................................................
00:00:28 v #6963 > > │
00:00:28 v #6964 > > ................................................................................
00:00:28 v #6965 > > ................................................................................
00:00:28 v #6966 > > │
00:00:28 v #6967 > > ................................................................................
00:00:28 v #6968 > > ................................................................................
00:00:28 v #6969 > > │
00:00:28 v #6970 > > ................................................................................
00:00:28 v #6971 > > ................................................................................
00:00:28 v #6972 > > │
00:00:28 v #6973 > > │
00:00:28 v #6974 > > ................................................................................
00:00:28 v #6975 > > ................................................................................
00:00:28 v #6976 > > │
00:00:28 v #6977 > > ................................................................................
00:00:28 v #6978 > > ................................................................................
00:00:28 v #6979 > > │
00:00:28 v #6980 > > ................................................................................
00:00:28 v #6981 > > ................................................................................
00:00:28 v #6982 > > │
00:00:28 v #6983 > > ................................................................................
00:00:28 v #6984 > > ................................................................................
00:00:28 v #6985 > > │
00:00:28 v #6986 > > ................................................................................
00:00:28 v #6987 > > ................................................................................
00:00:28 v #6988 > > │
00:00:28 v #6989 > > ................................................................................
00:00:28 v #6990 > > ................................................................................
00:00:28 v #6991 > > │
00:00:28 v #6992 > > ................................................................................
00:00:28 v #6993 > > ................................................................................
00:00:28 v #6994 > > │
00:00:28 v #6995 > > .......................................;;/<.....................................
00:00:28 v #6996 > > ................................................................................
00:00:28 v #6997 > > │
00:00:28 v #6998 > > ....................................<;;;/////...................................
00:00:28 v #6999 > > ................................................................................
00:00:28 v #7000 > > │
00:00:28 v #7001 > > ..................................;;;;;////////<................................
00:00:28 v #7002 > > ................................................................................
00:00:28 v #7003 > > │
00:00:28 v #7004 > > ................................;;;;;;;///////////..............................
00:00:28 v #7005 > > ................................................................................
00:00:28 v #7006 > > │
00:00:28 v #7007 > > ..............................;;;;;;;;//////////////<...........................
00:00:28 v #7008 > > ................................................................................
00:00:28 v #7009 > > │
00:00:28 v #7010 > > ............................;;;;;;;;;;/////////////////.........................
00:00:28 v #7011 > > ................................................................................
00:00:28 v #7012 > > │
00:00:28 v #7013 > > ..........................;;;;;;;;;;;////////////////////<......................
00:00:28 v #7014 > > ................................................................................
00:00:28 v #7015 > > │
00:00:28 v #7016 > > ........................;;;;;;;;;;;;////////////////////////....................
00:00:28 v #7017 > > ................................................................................
00:00:28 v #7018 > > │
00:00:28 v #7019 > > .......................;;;;;;;;;;;;;///////////////////////////.................
00:00:28 v #7020 > > ........;;///...................................................................
00:00:28 v #7021 > > │
00:00:28 v #7022 > > ......................;;;;;;;;;;;;;//////////////////////////////...............
00:00:28 v #7023 > > .....;;;;;//////................................................................
00:00:28 v #7024 > > │
00:00:28 v #7025 > > .....................;;;;;;;;;;;;;;//////////////////////////////...............
00:00:28 v #7026 > > ..;;;;;;;//////////.............................................................
00:00:28 v #7027 > > │
00:00:28 v #7028 > > ....................;;;;;;;;;;;;;;///////////////////////////////...............
00:00:28 v #7029 > > \;;;;;;;;////////////<.................;;.......................................
00:00:28 v #7030 > > │
00:00:28 v #7031 > > ...................\;;;;;;;;;;;;;///////////////////////////////................
00:00:28 v #7032 > > ;;;;;;;;///////////////............<;;;;////<...................................
00:00:28 v #7033 > > │
00:00:28 v #7034 > > ...................;;;;;;;;;;;;;;///////////////////////////////...............;
00:00:28 v #7035 > > ;;;;;;;;///////////////...........\;;;;////////.................................
00:00:28 v #7036 > > │
00:00:28 v #7037 > > ..................;;;;;;;;;;;;;;////////////////////////////////..............\;
00:00:28 v #7038 > > ;;;;;;;///////////////............;;;;;////////.................................
00:00:28 v #7039 > > │
00:00:28 v #7040 > > .................;;;;;;;;;;;;;;;////////////////////////////////..............;;
00:00:28 v #7041 > > ;;;;;;;>//////////////...........\;;;;;>>>////..................................
00:00:28 v #7042 > > │
00:00:28 v #7043 > > ................;;;;;;;;;;;;;;;>>>//////////////////////////////.............;;;
00:00:28 v #7044 > > ;;;;>>>>>>>>//////////...........;;>>>>>>>>>>/..................................
00:00:28 v #7045 > > │
00:00:28 v #7046 > > ................;;;;;;;;;;;;>>>>>>>>>>//////////////////////////.............;;;
00:00:28 v #7047 > > >>>>>>>>>>>>>>>>/////..............\>>>>>>>>/...................................
00:00:28 v #7048 > > │
00:00:28 v #7049 > > ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>//////////////////////.............\>>
00:00:28 v #7050 > > >>>>>>>>>>>>>>>>>>>//..................\=.......................................
00:00:28 v #7051 > > │
00:00:28 v #7052 > > ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////................
00:00:28 v #7053 > > .\>>>>>>>>>>>>>>>>>>/...........................................................
00:00:28 v #7054 > > │
00:00:28 v #7055 > > .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////.................
00:00:28 v #7056 > > ......>>>>>>>>>>................................................................
00:00:28 v #7057 > > │
00:00:28 v #7058 > > ...............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////.................
00:00:28 v #7059 > > ................................................................................
00:00:28 v #7060 > > │
00:00:28 v #7061 > > ...................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////.................
00:00:28 v #7062 > > ................................................................................
00:00:28 v #7063 > > │
00:00:28 v #7064 > > ........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//.................
00:00:28 v #7065 > > ................................................................................
00:00:28 v #7066 > > │
00:00:28 v #7067 > > .............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/.................
00:00:28 v #7068 > > ................................................................................
00:00:28 v #7069 > > │
00:00:28 v #7070 > > ..................................>>>>>>>>>>>>>>>>>>>>==........................
00:00:28 v #7071 > > ................................................................................
00:00:28 v #7072 > > │
00:00:28 v #7073 > > .......................................>==......................................
00:00:28 v #7074 > > ................................................................................
00:00:28 v #7075 > > │
00:00:28 v #7076 > > ................................................................................
00:00:28 v #7077 > > ................................................................................
00:00:28 v #7078 > > │
00:00:28 v #7079 > > ................................................................................
00:00:28 v #7080 > > ................................................................................
00:00:28 v #7081 > > │
00:00:28 v #7082 > > ................................................................................
00:00:28 v #7083 > > ................................................................................
00:00:28 v #7084 > > │
00:00:28 v #7085 > > ................................................................................
00:00:28 v #7086 > > ................................................................................
00:00:28 v #7087 > > │
00:00:28 v #7088 > > ................................................................................
00:00:28 v #7089 > > ................................................................................
00:00:28 v #7090 > > │
00:00:28 v #7091 > > ................................................................................
00:00:28 v #7092 > > ................................................................................
00:00:28 v #7093 > > │
00:00:28 v #7094 > > ................................................................................
00:00:28 v #7095 > > ................................................................................
00:00:28 v #7096 > > │
00:00:28 v #7097 > > ................................................................................
00:00:28 v #7098 > > ................................................................................
00:00:28 v #7099 > > │
00:00:28 v #7100 > > ................................................................................
00:00:28 v #7101 > > ................................................................................
00:00:28 v #7102 > > │
00:00:28 v #7103 > > ................................................................................
00:00:28 v #7104 > > ................................................................................
00:00:28 v #7105 > > │
00:00:28 v #7106 > > │
00:00:28 v #7107 > > ................................................................................
00:00:28 v #7108 > > ................................................................................
00:00:28 v #7109 > > │
00:00:28 v #7110 > > ................................................................................
00:00:28 v #7111 > > ................................................................................
00:00:28 v #7112 > > │
00:00:28 v #7113 > > ................................................................................
00:00:28 v #7114 > > ................................................................................
00:00:28 v #7115 > > │
00:00:28 v #7116 > > ................................................................................
00:00:28 v #7117 > > ................................................................................
00:00:28 v #7118 > > │
00:00:28 v #7119 > > ................................................................................
00:00:28 v #7120 > > ................................................................................
00:00:28 v #7121 > > │
00:00:28 v #7122 > > ................................................................................
00:00:28 v #7123 > > ................................................................................
00:00:28 v #7124 > > │
00:00:28 v #7125 > > ................................................................................
00:00:28 v #7126 > > ................................................................................
00:00:28 v #7127 > > │
00:00:28 v #7128 > > ......................................;;//......................................
00:00:28 v #7129 > > ................................................................................
00:00:28 v #7130 > > │
00:00:28 v #7131 > > ....................................;;;;////....................................
00:00:28 v #7132 > > ................................................................................
00:00:28 v #7133 > > │
00:00:28 v #7134 > > ..................................;;;;;////////.................................
00:00:28 v #7135 > > ................................................................................
00:00:28 v #7136 > > │
00:00:28 v #7137 > > ...............................<;;;;;;;///////////..............................
00:00:28 v #7138 > > ................................................................................
00:00:28 v #7139 > > │
00:00:28 v #7140 > > .............................;;;;;;;;;//////////////............................
00:00:28 v #7141 > > ................................................................................
00:00:28 v #7142 > > │
00:00:28 v #7143 > > ...........................;;;;;;;;;;;/////////////////.........................
00:00:28 v #7144 > > ................................................................................
00:00:28 v #7145 > > │
00:00:28 v #7146 > > .........................;;;;;;;;;;;;;///////////////////<......................
00:00:28 v #7147 > > ................................................................................
00:00:28 v #7148 > > │
00:00:28 v #7149 > > .......................;;;;;;;;;;;;;;///////////////////////....................
00:00:28 v #7150 > > ................................................................................
00:00:28 v #7151 > > │
00:00:28 v #7152 > > .....................\;;;;;;;;;;;;;;;//////////////////////////.................
00:00:28 v #7153 > > .......<;;//<...................................................................
00:00:28 v #7154 > > │
00:00:28 v #7155 > > .....................;;;;;;;;;;;;;;;;///////////////////////////................
00:00:28 v #7156 > > ....<;;;;;//////................................................................
00:00:28 v #7157 > > │
00:00:28 v #7158 > > ....................;;;;;;;;;;;;;;;;////////////////////////////................
00:00:28 v #7159 > > ..;;;;;;;;/////////.............................................................
00:00:28 v #7160 > > │
00:00:28 v #7161 > > ....................;;;;;;;;;;;;;;;;////////////////////////////................
00:00:28 v #7162 > > ;;;;;;;;;/////////////.................;/.......................................
00:00:28 v #7163 > > │
00:00:28 v #7164 > > ...................;;;;;;;;;;;;;;;;/////////////////////////////...............;
00:00:28 v #7165 > > ;;;;;;;;;/////////////.............<;;;;////<...................................
00:00:28 v #7166 > > │
00:00:28 v #7167 > > ..................;;;;;;;;;;;;;;;;;/////////////////////////////...............;
00:00:28 v #7168 > > ;;;;;;;;//////////////............\;;;;;//////..................................
00:00:28 v #7169 > > │
00:00:28 v #7170 > > ..................;;;;;;;;;;;;;;;;;/////////////////////////////..............\;
00:00:28 v #7171 > > ;;;;;;;;//////////////............;;;;;///////..................................
00:00:28 v #7172 > > │
00:00:28 v #7173 > > .................;;;;;;;;;;;;;;;;;//////////////////////////////..............;;
00:00:28 v #7174 > > ;;;;;;;;>/////////////............;;;;;>>>////..................................
00:00:28 v #7175 > > │
00:00:28 v #7176 > > .................;;;;;;;;;;;;;;;;;>/////////////////////////////..............;;
00:00:28 v #7177 > > ;;;;;;>>>>>>>/////////...........;;;>>>>>>>>>/..................................
00:00:28 v #7178 > > │
00:00:28 v #7179 > > ................;;;;;;;;;;;;;;;;>>>>>>>/////////////////////////.............;;;
00:00:28 v #7180 > > ;;>>>>>>>>>>>>>>>/////.............\>>>>>>>>>=..................................
00:00:28 v #7181 > > │
00:00:28 v #7182 > > ...............;;;;;;;;;;;;;>>>>>>>>>>>>>>>/////////////////////.............;>>
00:00:28 v #7183 > > >>>>>>>>>>>>>>>>>>>>>/..................>.......................................
00:00:28 v #7184 > > │
00:00:28 v #7185 > > ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>////////////////................
00:00:28 v #7186 > > .>>>>>>>>>>>>>>>>>>>/...........................................................
00:00:28 v #7187 > > │
00:00:28 v #7188 > > ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////................
00:00:28 v #7189 > > ......>>>>>>>>>>................................................................
00:00:28 v #7190 > > │
00:00:28 v #7191 > > ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////................
00:00:28 v #7192 > > ................................................................................
00:00:28 v #7193 > > │
00:00:28 v #7194 > > .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////................
00:00:28 v #7195 > > ................................................................................
00:00:28 v #7196 > > │
00:00:28 v #7197 > > ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>................
00:00:28 v #7198 > > ................................................................................
00:00:28 v #7199 > > │
00:00:28 v #7200 > > ............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..................
00:00:28 v #7201 > > ................................................................................
00:00:28 v #7202 > > │
00:00:28 v #7203 > > ..................................>>>>>>>>>>>>>>>>>>............................
00:00:28 v #7204 > > ................................................................................
00:00:28 v #7205 > > │
00:00:28 v #7206 > > .......................................>=.......................................
00:00:28 v #7207 > > ................................................................................
00:00:28 v #7208 > > │
00:00:28 v #7209 > > ................................................................................
00:00:28 v #7210 > > ................................................................................
00:00:28 v #7211 > > │
00:00:28 v #7212 > > ................................................................................
00:00:28 v #7213 > > ................................................................................
00:00:28 v #7214 > > │
00:00:28 v #7215 > > ................................................................................
00:00:28 v #7216 > > ................................................................................
00:00:28 v #7217 > > │
00:00:28 v #7218 > > ................................................................................
00:00:28 v #7219 > > ................................................................................
00:00:28 v #7220 > > │
00:00:28 v #7221 > > ................................................................................
00:00:28 v #7222 > > ................................................................................
00:00:28 v #7223 > > │
00:00:28 v #7224 > > ................................................................................
00:00:28 v #7225 > > ................................................................................
00:00:28 v #7226 > > │
00:00:28 v #7227 > > ................................................................................
00:00:28 v #7228 > > ................................................................................
00:00:28 v #7229 > > │
00:00:28 v #7230 > > ................................................................................
00:00:28 v #7231 > > ................................................................................
00:00:28 v #7232 > > │
00:00:28 v #7233 > > ................................................................................
00:00:28 v #7234 > > ................................................................................
00:00:28 v #7235 > > │
00:00:28 v #7236 > > ................................................................................
00:00:28 v #7237 > > ................................................................................
00:00:28 v #7238 > > │
00:00:28 v #7239 > > │
00:00:28 v #7240 > > ................................................................................
00:00:28 v #7241 > > ................................................................................
00:00:28 v #7242 > > │
00:00:28 v #7243 > > ................................................................................
00:00:28 v #7244 > > ................................................................................
00:00:28 v #7245 > > │
00:00:28 v #7246 > > ................................................................................
00:00:28 v #7247 > > ................................................................................
00:00:28 v #7248 > > │
00:00:28 v #7249 > > ................................................................................
00:00:28 v #7250 > > ................................................................................
00:00:28 v #7251 > > │
00:00:28 v #7252 > > ................................................................................
00:00:28 v #7253 > > ................................................................................
00:00:28 v #7254 > > │
00:00:28 v #7255 > > ................................................................................
00:00:28 v #7256 > > ................................................................................
00:00:28 v #7257 > > │
00:00:28 v #7258 > > ................................................................................
00:00:28 v #7259 > > ................................................................................
00:00:28 v #7260 > > │
00:00:28 v #7261 > > .....................................<;;/<......................................
00:00:28 v #7262 > > ................................................................................
00:00:28 v #7263 > > │
00:00:28 v #7264 > > ...................................;;;;;///<....................................
00:00:28 v #7265 > > ................................................................................
00:00:28 v #7266 > > │
00:00:28 v #7267 > > .................................;;;;;;///////<.................................
00:00:28 v #7268 > > ................................................................................
00:00:28 v #7269 > > │
00:00:28 v #7270 > > ...............................;;;;;;;;//////////<..............................
00:00:28 v #7271 > > ................................................................................
00:00:28 v #7272 > > │
00:00:28 v #7273 > > ............................<;;;;;;;;;;/////////////............................
00:00:28 v #7274 > > ................................................................................
00:00:28 v #7275 > > │
00:00:28 v #7276 > > ..........................<;;;;;;;;;;;;///////////////<.........................
00:00:28 v #7277 > > ................................................................................
00:00:28 v #7278 > > │
00:00:28 v #7279 > > ........................;;;;;;;;;;;;;;;//////////////////<......................
00:00:28 v #7280 > > ................................................................................
00:00:28 v #7281 > > │
00:00:28 v #7282 > > ......................;;;;;;;;;;;;;;;;//////////////////////....................
00:00:28 v #7283 > > ................................................................................
00:00:28 v #7284 > > │
00:00:28 v #7285 > > ....................;;;;;;;;;;;;;;;;;;////////////////////////..................
00:00:28 v #7286 > > .......;;;//....................................................................
00:00:28 v #7287 > > │
00:00:28 v #7288 > > ....................;;;;;;;;;;;;;;;;;;/////////////////////////.................
00:00:28 v #7289 > > ....;;;;;;//////................................................................
00:00:28 v #7290 > > │
00:00:28 v #7291 > > ...................;;;;;;;;;;;;;;;;;;;/////////////////////////.................
00:00:28 v #7292 > > .<;;;;;;;;////////<.............................................................
00:00:28 v #7293 > > │
00:00:28 v #7294 > > ...................;;;;;;;;;;;;;;;;;;;/////////////////////////................;
00:00:28 v #7295 > > ;;;;;;;;;;////////////.................;/.......................................
00:00:28 v #7296 > > │
00:00:28 v #7297 > > ..................\;;;;;;;;;;;;;;;;;;//////////////////////////................;
00:00:28 v #7298 > > ;;;;;;;;;/////////////.............<;;;;////<...................................
00:00:28 v #7299 > > │
00:00:28 v #7300 > > ..................;;;;;;;;;;;;;;;;;;;//////////////////////////................;
00:00:28 v #7301 > > ;;;;;;;;;/////////////............;;;;;;//////..................................
00:00:28 v #7302 > > │
00:00:28 v #7303 > > ..................;;;;;;;;;;;;;;;;;;;///////////////////////////..............;;
00:00:28 v #7304 > > ;;;;;;;;;/////////////............;;;;;;//////..................................
00:00:28 v #7305 > > │
00:00:28 v #7306 > > .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;;
00:00:28 v #7307 > > ;;;;;;;;;>////////////............;;;;;;>>////..................................
00:00:28 v #7308 > > │
00:00:28 v #7309 > > .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;;
00:00:28 v #7310 > > ;;;;;;;;>>>>/>////////............;;;>>>>>>>>>..................................
00:00:28 v #7311 > > │
00:00:28 v #7312 > > ................;;;;;;;;;;;;;;;;;;;;>>>>>///////////////////////.............\;;
00:00:28 v #7313 > > ;;;>>>>>>>>>>>>>/>////.............>>>>>>>>>=...................................
00:00:28 v #7314 > > │
00:00:28 v #7315 > > ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>//////////////////.............;;;
00:00:28 v #7316 > > >>>>>>>>>>>>>>>>>>>>>>..................=.......................................
00:00:28 v #7317 > > │
00:00:28 v #7318 > > ...............;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>//////////////................
00:00:28 v #7319 > > >>>>>>>>>>>>>>>>>>>>>...........................................................
00:00:28 v #7320 > > │
00:00:28 v #7321 > > ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////...............
00:00:28 v #7322 > > .....\>>>>>>>>=.................................................................
00:00:28 v #7323 > > │
00:00:28 v #7324 > > ..............;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////...............
00:00:28 v #7325 > > ................................................................................
00:00:28 v #7326 > > │
00:00:28 v #7327 > > ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/...............
00:00:28 v #7328 > > ................................................................................
00:00:28 v #7329 > > │
00:00:28 v #7330 > > ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...............
00:00:28 v #7331 > > ................................................................................
00:00:28 v #7332 > > │
00:00:28 v #7333 > > ..........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>......................
00:00:28 v #7334 > > ................................................................................
00:00:28 v #7335 > > │
00:00:28 v #7336 > > .................................>>>>>>>>>>>>>>>>...............................
00:00:28 v #7337 > > ................................................................................
00:00:28 v #7338 > > │
00:00:28 v #7339 > > ........................................=.......................................
00:00:28 v #7340 > > ................................................................................
00:00:28 v #7341 > > │
00:00:28 v #7342 > > ................................................................................
00:00:28 v #7343 > > ................................................................................
00:00:28 v #7344 > > │
00:00:28 v #7345 > > ................................................................................
00:00:28 v #7346 > > ................................................................................
00:00:28 v #7347 > > │
00:00:28 v #7348 > > ................................................................................
00:00:28 v #7349 > > ................................................................................
00:00:28 v #7350 > > │
00:00:28 v #7351 > > ................................................................................
00:00:28 v #7352 > > ................................................................................
00:00:28 v #7353 > > │
00:00:28 v #7354 > > ................................................................................
00:00:28 v #7355 > > ................................................................................
00:00:28 v #7356 > > │
00:00:28 v #7357 > > ................................................................................
00:00:28 v #7358 > > ................................................................................
00:00:28 v #7359 > > │
00:00:28 v #7360 > > ................................................................................
00:00:28 v #7361 > > ................................................................................
00:00:28 v #7362 > > │
00:00:28 v #7363 > > ................................................................................
00:00:28 v #7364 > > ................................................................................
00:00:28 v #7365 > > │
00:00:28 v #7366 > > ................................................................................
00:00:28 v #7367 > > ................................................................................
00:00:28 v #7368 > > │
00:00:28 v #7369 > > ................................................................................
00:00:28 v #7370 > > ................................................................................
00:00:28 v #7371 > > │
00:00:28 v #7372 > > │
00:00:28 v #7373 > > ................................................................................
00:00:28 v #7374 > > ................................................................................
00:00:28 v #7375 > > │
00:00:28 v #7376 > > ................................................................................
00:00:28 v #7377 > > ................................................................................
00:00:28 v #7378 > > │
00:00:28 v #7379 > > ................................................................................
00:00:28 v #7380 > > ................................................................................
00:00:28 v #7381 > > │
00:00:28 v #7382 > > ................................................................................
00:00:28 v #7383 > > ................................................................................
00:00:28 v #7384 > > │
00:00:28 v #7385 > > ................................................................................
00:00:28 v #7386 > > ................................................................................
00:00:28 v #7387 > > │
00:00:28 v #7388 > > ................................................................................
00:00:28 v #7389 > > ................................................................................
00:00:28 v #7390 > > │
00:00:28 v #7391 > > ................................................................................
00:00:28 v #7392 > > ................................................................................
00:00:28 v #7393 > > │
00:00:28 v #7394 > > .....................................;;//.......................................
00:00:28 v #7395 > > ................................................................................
00:00:28 v #7396 > > │
00:00:28 v #7397 > > ...................................;;;;////<....................................
00:00:28 v #7398 > > ................................................................................
00:00:28 v #7399 > > │
00:00:28 v #7400 > > ................................<;;;;;;///////..................................
00:00:28 v #7401 > > ................................................................................
00:00:28 v #7402 > > │
00:00:28 v #7403 > > ..............................<;;;;;;;;/////////<...............................
00:00:28 v #7404 > > ................................................................................
00:00:28 v #7405 > > │
00:00:28 v #7406 > > ............................;;;;;;;;;;;////////////<............................
00:00:28 v #7407 > > ................................................................................
00:00:28 v #7408 > > │
00:00:28 v #7409 > > ..........................;;;;;;;;;;;;;///////////////<.........................
00:00:28 v #7410 > > ................................................................................
00:00:28 v #7411 > > │
00:00:28 v #7412 > > .......................<;;;;;;;;;;;;;;;//////////////////.......................
00:00:28 v #7413 > > ................................................................................
00:00:28 v #7414 > > │
00:00:28 v #7415 > > .....................;;;;;;;;;;;;;;;;;;/////////////////////....................
00:00:28 v #7416 > > ................................................................................
00:00:28 v #7417 > > │
00:00:28 v #7418 > > ...................;;;;;;;;;;;;;;;;;;;;//////////////////////...................
00:00:28 v #7419 > > .......;;;//....................................................................
00:00:28 v #7420 > > │
00:00:28 v #7421 > > ...................;;;;;;;;;;;;;;;;;;;;///////////////////////..................
00:00:28 v #7422 > > ....;;;;;;//////................................................................
00:00:28 v #7423 > > │
00:00:28 v #7424 > > ..................\;;;;;;;;;;;;;;;;;;;;///////////////////////..................
00:00:28 v #7425 > > .;;;;;;;;;/////////.............................................................
00:00:28 v #7426 > > │
00:00:28 v #7427 > > ..................;;;;;;;;;;;;;;;;;;;;;///////////////////////.................;
00:00:28 v #7428 > > ;;;;;;;;;;///////////..................;/.......................................
00:00:28 v #7429 > > │
00:00:28 v #7430 > > ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////................;
00:00:28 v #7431 > > ;;;;;;;;;;////////////.............<;;;;////<...................................
00:00:28 v #7432 > > │
00:00:28 v #7433 > > ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////...............\;
00:00:28 v #7434 > > ;;;;;;;;;;////////////............;;;;;;//////..................................
00:00:28 v #7435 > > │
00:00:28 v #7436 > > .................;;;;;;;;;;;;;;;;;;;;;;////////////////////////...............;;
00:00:28 v #7437 > > ;;;;;;;;;;////////////............;;;;;;//////..................................
00:00:28 v #7438 > > │
00:00:28 v #7439 > > .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;;
00:00:28 v #7440 > > ;;;;;;;;;;>///////////............;;;;;;>>>///..................................
00:00:28 v #7441 > > │
00:00:28 v #7442 > > .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;;
00:00:28 v #7443 > > ;;;;;;;;;>>>>>>///////............;;;;>>>>>>>>..................................
00:00:28 v #7444 > > │
00:00:28 v #7445 > > ................;;;;;;;;;;;;;;;;;;;;;;;>>>>/////////////////////..............;;
00:00:28 v #7446 > > ;;;;;;>>>>>>>>>>>>>>//.............>>>>>>>>>=...................................
00:00:28 v #7447 > > │
00:00:28 v #7448 > > ................;;;;;;;;;;;;;;;;;;;>>>>>>>>>>>>>/////////////////.............;;
00:00:28 v #7449 > > ;;>>>>>>>>>>>>>>>>>>>>..................=.......................................
00:00:28 v #7450 > > │
00:00:28 v #7451 > > ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>////////////..............\
00:00:28 v #7452 > > >>>>>>>>>>>>>>>>>>>>............................................................
00:00:28 v #7453 > > │
00:00:28 v #7454 > > ...............\;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///////...............
00:00:28 v #7455 > > .....>>>>>>>>>=.................................................................
00:00:28 v #7456 > > │
00:00:28 v #7457 > > ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///..............
00:00:28 v #7458 > > ................................................................................
00:00:28 v #7459 > > │
00:00:28 v #7460 > > ...............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..............
00:00:28 v #7461 > > ................................................................................
00:00:28 v #7462 > > │
00:00:28 v #7463 > > ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=..................
00:00:28 v #7464 > > ................................................................................
00:00:28 v #7465 > > │
00:00:28 v #7466 > > ........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=.........................
00:00:28 v #7467 > > ................................................................................
00:00:28 v #7468 > > │
00:00:28 v #7469 > > .................................\>>>>>>>>>>>>>=................................
00:00:28 v #7470 > > ................................................................................
00:00:28 v #7471 > > │
00:00:28 v #7472 > > ................................................................................
00:00:28 v #7473 > > ................................................................................
00:00:28 v #7474 > > │
00:00:28 v #7475 > > ................................................................................
00:00:28 v #7476 > > ................................................................................
00:00:28 v #7477 > > │
00:00:28 v #7478 > > ................................................................................
00:00:28 v #7479 > > ................................................................................
00:00:28 v #7480 > > │
00:00:28 v #7481 > > ................................................................................
00:00:28 v #7482 > > ................................................................................
00:00:28 v #7483 > > │
00:00:28 v #7484 > > ................................................................................
00:00:28 v #7485 > > ................................................................................
00:00:28 v #7486 > > │
00:00:28 v #7487 > > ................................................................................
00:00:28 v #7488 > > ................................................................................
00:00:28 v #7489 > > │
00:00:28 v #7490 > > ................................................................................
00:00:28 v #7491 > > ................................................................................
00:00:28 v #7492 > > │
00:00:28 v #7493 > > ................................................................................
00:00:28 v #7494 > > ................................................................................
00:00:28 v #7495 > > │
00:00:28 v #7496 > > ................................................................................
00:00:28 v #7497 > > ................................................................................
00:00:28 v #7498 > > │
00:00:28 v #7499 > > ................................................................................
00:00:28 v #7500 > > ................................................................................
00:00:28 v #7501 > > │
00:00:28 v #7502 > > ................................................................................
00:00:28 v #7503 > > ................................................................................
00:00:28 v #7504 > > │
00:00:28 v #7505 > > │
00:00:28 v #7506 > 00:00:26 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 450048 }
00:00:28 v #7507 > 00:00:26 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:28 v #7508 > 00:00:27 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb to html
00:00:28 v #7509 > 00:00:27 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:28 v #7510 > 00:00:27 v #7 !   validate(nb)
00:00:29 v #7511 > 00:00:27 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:29 v #7512 > 00:00:27 v #9 !   return _pygments_highlight(
00:00:29 v #7513 > 00:00:28 v #10 ! [NbConvertApp] Writing 798012 bytes to /home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.html
00:00:29 v #7514 > 00:00:28 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 914 }
00:00:29 v #7515 > 00:00:28 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 914 }
00:00:29 v #7516 > 00:00:28 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:30 v #7517 > 00:00:28 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:30 v #7518 > 00:00:28 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:30 v #7519 > 00:00:28 d #16 spiral.run / dib / { exit_code = 0; result_length = 451021 }
00:00:30 d #7520 runtime.execute_with_options_async / { exit_code = 0; output_length = 468722 }
00:00:30 d #3 main / executeCommand / exitCode: 0 / command: ../../../../deps/spiral/workspace/target/release/spiral dib --path cube.dib
00:00:30 v #32 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 writeDibCode / output: Spi / path: cube.dib
00:00:00 d #2 parseDibCode / output: Spi / file: cube.dib
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 v #31 networking.test_port_open / { port = 13806; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # cube\n\n/// ## cube\n\n/// ### get_width\ninl get_width () =\n    160i...  }\n    : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.spi"}} / result:
00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.spi"}} / result:
00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:03 d #16 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:03 d #17 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:04 d #20 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>]
type std_string_String = class end
#else
type std_string_String = string
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>]
#endif
type std_env_VarError = class end
type IOsEnviron = abstract environ: x: unit -> obj
type [<Struct>] US0 =
    | US0_0
    | US0_1
    | US0_2
and [<Struct>] US1 =
    | US1_0 of f0_0 : US0
    | US1_1 of f1_0 : US0
    | US1_2 of f2_0 : US0
    | US1_3 of f3_0 : US0
    | US1_4 of f4_0 : US0
and [<Struct>] US2 =
    | US2_0 of f0_0 : string
    | US2_1
and Mut0 = {mutable l0 : float}
and [<Struct>] US3 =
    | US3_0 of f0_0 : int32 * f0_1 : float * f0_2 : char
    | US3_1
and [<Struct>] US4 =
    ...x<unit>
    #endif
#if FABLE_COMPILER_RUST && CONTRACT
    null |> unbox<unit>
    #endif
#if FABLE_COMPILER_TYPESCRIPT
    null |> unbox<unit>
    #endif
#if FABLE_COMPILER_PYTHON
    let v151 : (Async<unit> -> unit) = Async.RunSynchronously
    v151 v79
    #endif
#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON
    let v152 : (Async<unit> -> unit) = Async.RunSynchronously
    v152 v79
    #endif
#else
    let v153 : (Async<unit> -> unit) = Async.RunSynchronously
    v153 v79
    #endif
    // run_target_args' is_unit
    #endif
    // run_target_args' is_unit
    ()
let v0 : ((string []) -> unit) = closure0()
let main_ = v0 
#if !FABLE_COMPILER_RUST
main_ [||]
#else
let main args = main_ [||]; 0
#endif
()

00:00:04 d #21 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:
#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>]
type std_string_String = class end
#else
type std_string_String = string
#endif

#if FABLE_COMPILER
[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>]
#endif
type std_env_VarError = class end
type IOsEnviron = abstract environ: x: unit -> obj
type [<Struct>] US0 =
    | US0_0
    | US0_1
    | US0_2
and [<Struct>] US1 =
    | US1_0 of f0_0 : US0
    | US1_1 of f1_0 : US0
    | US1_2 of f2_0 : US0
    | US1_3 of f3_0 : US0
    | US1_4 of f4_0 : US0
and [<Struct>] US2 =
    | US2_0 of f0_0 : string
    | US2_1
and Mut0 = {mutable l0 : float}
and [<Struct>] US3 =
    | US3_0 of f0_0 : int32 * f0_1 : float * f0_2 : char
    | US3_1
and [<Struct>] US4 =
    ...x<unit>
    #endif
#if FABLE_COMPILER_RUST && CONTRACT
    null |> unbox<unit>
    #endif
#if FABLE_COMPILER_TYPESCRIPT
    null |> unbox<unit>
    #endif
#if FABLE_COMPILER_PYTHON
    let v151 : (Async<unit> -> unit) = Async.RunSynchronously
    v151 v79
    #endif
#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON
    let v152 : (Async<unit> -> unit) = Async.RunSynchronously
    v152 v79
    #endif
#else
    let v153 : (Async<unit> -> unit) = Async.RunSynchronously
    v153 v79
    #endif
    // run_target_args' is_unit
    #endif
    // run_target_args' is_unit
    ()
let v0 : ((string []) -> unit) = closure0()
let main_ = v0 
#if !FABLE_COMPILER_RUST
main_ [||]
#else
let main args = main_ [||]; 0
#endif
()

00:00:04 d #22 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:04 v #32 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #31 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 v #32 networking.test_port_open / { port = 13806; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # cube\n\n/// ## cube\n\n/// ### get_width\ninl get_width () =\n    160i...  }\n    : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.spi"}} / result:
00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Python \u002B Cuda","uri":"file:///home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.spi"}} / result:
00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:03 d #16 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:03 d #17 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:

00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:

00:00:04 d #20 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry: 0 / error:  / outputContent:
kernel = r"""
"""
class static_array():
    def __init__(self, length):
        self.ptr = []
        for _ in range(length):
            self.ptr.append(None)

    def __getitem__(self, index):
        assert 0 <= index < len(self.ptr), "The get index needs to be in range."
        return self.ptr[index]
    
    def __setitem__(self, index, value):
        assert 0 <= index < len(self.ptr), "The set index needs to be in range."
        self.ptr[index] = value

class static_array_list(static_array):
    def __init__(self, length):
        super().__init__(length)
        self.length = 0

    def __getitem__(self, index):
        assert 0 <= index < self.length, "The get index needs to be in range."
        return self.ptr[index]
    
    d... = 0 == v60
    del v60
    if v61:
        v62 = "AUTOMATION"
        v63 = method1(v62)
        del v62
        v64 = len(v63)
        del v63
        v65 = 0 == v64
        del v64
        v66 = v65
    else:
        v66 = False
    del v61
    if v66:
        v75 = -1
    else:
        v75 = 50
    del v66
    v76 = 1
    v77 = 0.0
    v78 = 0.0
    v79 = 0.0
    v80 = method2(v75, v76, v77, v78, v79)
    del v75, v76, v77, v78, v79
    asyncio.run(v80())
    del v80
    return 

def main():
    r = main_body()
    if cuda: cp.cuda.get_current_stream().synchronize() # This line is here so the `__trap()` calls on the kernel aren't missed.
    return r

if __name__ == '__main__': result = main(); None if result is None else print(result)

00:00:04 d #21 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:
kernel = r"""
"""
class static_array():
    def __init__(self, length):
        self.ptr = []
        for _ in range(length):
            self.ptr.append(None)

    def __getitem__(self, index):
        assert 0 <= index < len(self.ptr), "The get index needs to be in range."
        return self.ptr[index]
    
    def __setitem__(self, index, value):
        assert 0 <= index < len(self.ptr), "The set index needs to be in range."
        self.ptr[index] = value

class static_array_list(static_array):
    def __init__(self, length):
        super().__init__(length)
        self.length = 0

    def __getitem__(self, index):
        assert 0 <= index < self.length, "The get index needs to be in range."
        return self.ptr[index]
    
    d... = 0 == v60
    del v60
    if v61:
        v62 = "AUTOMATION"
        v63 = method1(v62)
        del v62
        v64 = len(v63)
        del v63
        v65 = 0 == v64
        del v64
        v66 = v65
    else:
        v66 = False
    del v61
    if v66:
        v75 = -1
    else:
        v75 = 50
    del v66
    v76 = 1
    v77 = 0.0
    v78 = 0.0
    v79 = 0.0
    v80 = method2(v75, v76, v77, v78, v79)
    del v75, v76, v77, v78, v79
    asyncio.run(v80())
    del v80
    return 

def main():
    r = main_body()
    if cuda: cp.cuda.get_current_stream().synchronize() # This line is here so the `__trap()` calls on the kernel aren't missed.
    return r

if __name__ == '__main__': result = main(); None if result is None else print(result)

00:00:04 d #22 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:04 v #33 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: cube / hash:  / code.Length: 48391
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/cube
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/cube
polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target:  / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/cube / ProjectName: cube / Language: rs / Runtime:  / root: /home/runner/work/polyglot/polyglot
Fable 5.0.0-alpha.7: F# to Rust compiler (status: alpha)

Thanks to the contributor! @Neftedollar
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target/Builder/cube/cube.fsproj...
Project and references (14 source files) parsed in 3037ms

Started Fable compilation...

Fable compilation finished in 7309ms

./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.rs
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.rs
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.rs
polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target:  / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/cube / ProjectName: cube / Language: ts / Runtime:  / root: /home/runner/work/polyglot/polyglot
Fable 5.0.0-alpha.7: F# to TypeScript compiler
Minimum @fable-org/fable-library-ts version (when installed from npm): 1.10.0

Thanks to the contributor! @jmmk
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target/Builder/cube/cube.fsproj...
Project and references (14 source files) parsed in 2082ms

Started Fable compilation...

Fable compilation finished in 6656ms

./deps/spiral/lib/spiral/sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored
./deps/spiral/lib/spiral/sm.fsx(307,20): (307,51) warning FABLE: CultureInfo argument is ignored
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/fsharp/Common.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/lib/fsharp/Common.ts / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/common.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/common.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/date_time.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/async_.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/platform.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/runtime.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/threading.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/networking.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/file_system.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/sm.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/crypto.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/trace.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.ts
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.ts
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/lib.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.ts
polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target:  / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/cube / ProjectName: cube / Language: py / Runtime:  / root: /home/runner/work/polyglot/polyglot
Fable 5.0.0-alpha.7: F# to Python compiler (status: beta)

Thanks to the contributor! @drk-mtr
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target/Builder/cube/cube.fsproj...
Project and references (14 source files) parsed in 2127ms

Started Fable compilation...

Fable compilation finished in 6652ms

./deps/spiral/lib/spiral/sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored
./deps/spiral/lib/spiral/sm.fsx(307,20): (307,51) warning FABLE: CultureInfo argument is ignored
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/fsharp/common.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/common.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/lib/fsharp/common.py / to: /home/runner/work/polyglot/polyglot/lib/fsharp/common.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/common.py / to: /home/runner/work/polyglot/spiral/lib/spiral/common.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/date_time.py / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/async_.py / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform_.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/platform_.py / to: /home/runner/work/polyglot/spiral/lib/spiral/platform_.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/runtime.py / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading_.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/threading_.py / to: /home/runner/work/polyglot/spiral/lib/spiral/threading_.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/networking.py / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/file_system.py / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/sm.py / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/crypto.py / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/trace.py / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.py
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.py
spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/lib.py / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.py
bun install v1.2.0 (b0c5a765)

+ @playwright/test@1.44.0
+ @types/chrome@0.0.268
+ npm-check-updates@17.1.14
+ buffer@6.0.3

11 packages installed [75.00ms]
[INFO]: 🎯  Checking for the Wasm target...
[INFO]: 🌀  Compiling to Wasm...
   Compiling proc-macro2 v1.0.92
   Compiling unicode-ident v1.0.14
   Compiling autocfg v1.4.0
   Compiling serde v1.0.216
   Compiling cfg-if v1.0.0
   Compiling wasm-bindgen-shared v0.2.99
   Compiling bumpalo v3.16.0
   Compiling log v0.4.22
   Compiling once_cell v1.20.2
   Compiling version_check v0.9.5
   Compiling wasm-bindgen v0.2.99
   Compiling memchr v2.7.4
   Compiling quote v1.0.37
   Compiling thiserror v1.0.69
   Compiling syn v2.0.90
   Compiling stable_deref_trait v1.2.0
   Compiling smallvec v1.13.2
   Compiling pin-project-lite v0.2.15
   Compiling futures-core v0.3.31
   Compiling writeable v0.5.5
   Compiling litemap v0.7.4
   Compiling lock_api v0.4.12
   Compiling slab v0.4.9
   Compiling futures-sink v0.3.31
   Compiling parking_lot_core v0.9.10
   Compiling itoa v1.0.14
   Compiling futures-channel v0.3.31
   Compiling icu_locid_transform_data v1.5.0
   Compiling percent-encoding v2.3.1
   Compiling libc v0.2.168
   Compiling futures-task v0.3.31
   Compiling futures-io v0.3.31
   Compiling pin-utils v0.1.0
   Compiling serde_json v1.0.133
   Compiling ryu v1.0.18
   Compiling icu_properties_data v1.5.0
   Compiling unicode-xid v0.2.6
   Compiling const_format_proc_macros v0.2.34
   Compiling proc-macro-error-attr v1.0.4
   Compiling hashbrown v0.15.2
   Compiling utf8_iter v1.0.4
   Compiling utf16_iter v1.0.5
   Compiling equivalent v1.0.1
   Compiling write16 v1.0.0
   Compiling icu_normalizer_data v1.5.0
   Compiling indexmap v2.7.0
   Compiling proc-macro-error v1.0.4
   Compiling unicode-segmentation v1.12.0
   Compiling bytes v1.9.0
   Compiling fnv v1.0.7
   Compiling const_format v0.2.34
   Compiling convert_case v0.6.0
   Compiling form_urlencoded v1.2.1
   Compiling proc-macro-utils v0.8.0
   Compiling proc-macro-utils v0.10.0
   Compiling proc-macro2-diagnostics v0.10.1
   Compiling xxhash-rust v0.8.12
   Compiling manyhow-macros v0.10.4
   Compiling slotmap v1.0.7
   Compiling wasm-bindgen-backend v0.2.99
   Compiling synstructure v0.13.1
   Compiling server_fn_macro v0.6.15
   Compiling half v2.4.1
   Compiling wasm-bindgen-macro-support v0.2.99
   Compiling anyhow v1.0.94
   Compiling scopeguard v1.2.0
   Compiling camino v1.1.9
   Compiling ciborium-io v0.2.2
   Compiling yansi v1.0.1
   Compiling paste v1.0.15
   Compiling ciborium-ll v0.2.2
   Compiling manyhow v0.10.4
   Compiling http v1.2.0
   Compiling tracing-core v0.1.33
   Compiling hashbrown v0.14.5
   Compiling serde_derive v1.0.216
   Compiling wasm-bindgen-macro v0.2.99
   Compiling zerofrom-derive v0.1.5
   Compiling yoke-derive v0.7.5
   Compiling thiserror-impl v1.0.69
   Compiling js-sys v0.3.76
   Compiling zerofrom v0.1.5
   Compiling yoke v0.7.5
   Compiling zerovec-derive v0.10.3
   Compiling displaydoc v0.2.5
   Compiling zerovec v0.10.4
   Compiling icu_provider_macros v1.5.0
   Compiling futures-macro v0.3.31
   Compiling tinystr v0.7.6
   Compiling icu_locid v1.5.0
   Compiling icu_collections v1.5.0
   Compiling icu_provider v1.5.0
   Compiling futures-util v0.3.31
   Compiling icu_locid_transform v1.5.0
   Compiling web-sys v0.3.76
   Compiling icu_properties v1.5.1
   Compiling wasm-bindgen-futures v0.4.49
   Compiling pin-project-internal v1.1.7
   Compiling futures-executor v0.3.31
   Compiling tracing-attributes v0.1.28
   Compiling icu_normalizer v1.5.0
   Compiling pin-project v1.1.7
   Compiling futures v0.3.31
   Compiling quote-use-macros v0.8.4
   Compiling idna_adapter v1.2.0
   Compiling idna v1.0.3
   Compiling quote-use v0.8.4
   Compiling serde_spanned v0.6.8
   Compiling toml_datetime v0.6.8
   Compiling syn_derive v0.1.8
   Compiling url v2.5.4
   Compiling prettyplease v0.2.25
   Compiling collection_literals v1.0.1
   Compiling same-file v1.0.6
   Compiling winnow v0.6.20
   Compiling interpolator v0.5.0
   Compiling attribute-derive-macro v0.9.2
   Compiling walkdir v2.5.0
   Compiling toml_edit v0.22.22
   Compiling rstml v0.11.2
   Compiling tracing v0.1.41
   Compiling serde-wasm-bindgen v0.6.5
   Compiling oco_ref v0.1.1
   Compiling ciborium v0.2.2
   Compiling serde_qs v0.12.0
   Compiling dashmap v5.5.3
   Compiling server_fn_macro_default v0.6.15
   Compiling derive-where v1.2.7
   Compiling parking_lot v0.12.3
   Compiling getrandom v0.2.15
   Compiling proc-macro-error-attr2 v2.0.0
   Compiling send_wrapper v0.6.0
   Compiling aho-corasick v1.1.3
   Compiling self_cell v1.1.0
   Compiling either v1.13.0
   Compiling utf8-width v0.1.7
   Compiling base64 v0.22.1
   Compiling rustc-hash v1.1.0
   Compiling minimal-lexical v0.2.1
   Compiling regex-syntax v0.8.5
   Compiling nom v7.1.3
   Compiling itertools v0.12.1
   Compiling regex-automata v0.4.9
   Compiling html-escape v0.2.13
   Compiling proc-macro-error2 v2.0.1
   Compiling uuid v1.11.0
   Compiling leptos_hot_reload v0.6.15
   Compiling attribute-derive v0.9.2
   Compiling toml v0.8.19
   Compiling typed-builder-macro v0.18.2
   Compiling pathdiff v0.2.3
   Compiling config v0.14.1
   Compiling typed-builder v0.18.2
   Compiling leptos_macro v0.6.15
   Compiling regex v1.11.1
   Compiling async-recursion v1.1.1
   Compiling num-traits v0.2.19
   Compiling inventory v0.3.15
   Compiling drain_filter_polyfill v0.1.3
   Compiling pad-adapter v0.1.1
   Compiling lazy_static v1.5.0
   Compiling leptos_config v0.6.15
   Compiling cfg_aliases v0.2.1
   Compiling borsh v1.5.3
   Compiling serde_test v1.0.177
   Compiling tokio v1.42.0
   Compiling linear-map v1.2.0
   Compiling serde_qs v0.13.0
   Compiling serde_urlencoded v0.7.1
   Compiling http v0.2.12
   Compiling base64 v0.13.1
   Compiling tower-service v0.3.3
   Compiling console_error_panic_hook v0.1.7
   Compiling gloo-utils v0.2.0
   Compiling leptos_reactive v0.6.15
   Compiling idb v0.6.4
   Compiling gloo-net v0.6.0
   Compiling reqwest-wasm v0.11.16
   Compiling console_log v1.0.0
   Compiling wasm-streams v0.4.2
   Compiling rexie v0.6.2
   Compiling server_fn v0.6.15
   Compiling leptos_server v0.6.15
   Compiling leptos_dom v0.6.15
   Compiling leptos v0.6.15
   Compiling leptos_meta v0.6.15
   Compiling leptos_router v0.6.15
   Compiling spiral_temp_extension v0.0.1 (/home/runner/work/polyglot/polyglot/apps/spiral/temp/extension)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.61s
[INFO]: ⬇️  Installing wasm-bindgen...
[INFO]: Optional field missing from Cargo.toml: 'description'. This is not necessary, but recommended
[INFO]: ✨   Done in 55.30s
[INFO]: 📦   Your wasm pkg is ready to publish at /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension/pkg.
Resolving dependencies
Resolved, downloaded and extracted [56]
Saved lockfile
▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta]

    pkg/spiral_temp_extension.js:1455:66:
      1455 │ ...ath = new URL('spiral_temp_extension_bg.wasm', import.meta.url);
           ╵                                                   ~~~~~~~~~~~

  You need to set the output format to "esm" for "import.meta" to work correctly.

1 warning

  dist/spiral_temp_extension_bg-GYR7LT4Q.wasm   4.4mb ⚠️
  dist/devtools.js                             29.0kb
  dist/content_script.js                       26.7kb
  dist/service_worker.js                        2.2kb

⚡ Done in 34ms
$ playwright test
[WebServer] Resolving dependencies
[WebServer] Resolved, downloaded and extracted [272]
[WebServer] Saved lockfile

Running 3 tests using 2 workers
···
  3 passed (8.7s)
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } }
00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot
00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval
00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #31 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:00 v #32 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result:
00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1
00:00:01 v #6 > Server bound to: http://localhost:13805
00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path build.dib"; options = { command = ../../../../deps/spiral/workspace/target/release/spiral dib --path build.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "build.dib"])) }
00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
00:00:02 v #10 > >
00:00:02 v #11 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #12 > > │ # test
00:00:02 v #13 > >
00:00:02 v #14 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #15 > > │ ## include scripts
00:00:02 v #16 > >
00:00:02 v #17 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 v #18 > > │ ### include notebook core
00:00:02 v #19 > >
00:00:02 v #20 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:02 v #21 > > . ../../../../scripts/nbs_header.ps1
00:00:03 v #22 > >
00:00:03 v #23 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:03 v #24 > > │ ### Include core functions script
00:00:03 v #25 > >
00:00:03 v #26 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:03 v #27 > > . ../../../../scripts/core.ps1
00:00:03 v #28 > >
00:00:03 v #29 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:03 v #30 > > │ ### Include spiral library
00:00:03 v #31 > >
00:00:03 v #32 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:03 v #33 > > . ../../../../deps/spiral/lib/spiral/lib.ps1
00:00:03 v #34 > >
00:00:03 v #35 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:03 v #36 > > │ ## execute project commands
00:00:03 v #37 > >
00:00:03 v #38 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:03 v #39 > > │ ### run notebook with retries using spiral supervisor
00:00:03 v #40 > >
00:00:03 v #41 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:03 v #42 > > { . ../../../../apps/spiral/dist/Supervisor$(_exe) --execute-command
00:00:03 v #43 > > "../../../../deps/spiral/workspace/target/release/spiral$(_exe) dib --path
00:00:03 v #44 > > test.dib --retries 3" } | Invoke-Block
00:00:15 v #45 > <test>
00:00:15 v #46 > </test>
00:00:17 v #47 > >
00:00:17 v #48 > > ── [ 14.01s - stdout ] ─────────────────────────────────────────────────────────
00:00:17 v #49 > > │ 00:00:00 v #1 networking.test_port_open / { port =
00:00:17 v #50 > > 13806; ex = System.AggregateException: One or more errors occurred. (Connection
00:00:17 v #51 > > refused) }
00:00:17 v #52 > > │ 00:00:00 d #1 runtime.execute_with_options_async / {
00:00:17 v #53 > > file_name = ../../../../deps/spiral/workspace/target/release/spiral; arguments =
00:00:17 v #54 > > US5_0 "dib --path test.dib --retries 3"; options = { command =
00:00:17 v #55 > > ../../../../deps/spiral/workspace/target/release/spiral dib --path test.dib
00:00:17 v #56 > > --retries 3; cancellation_token = Some System.Threading.CancellationToken;
00:00:17 v #57 > > environment_variables = [||]; on_line = None; stdin = None; trace = true;
00:00:17 v #58 > > working_directory = None } }
00:00:17 v #59 > > │ 00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args
00:00:17 v #60 > > = Array(MutCell(["dib", "--path", "test.dib", "--retries", "3"])) }
00:00:17 v #61 > > │ 00:00:00 v #3 > 00:00:00 d #2
00:00:17 v #62 > > runtime.execute_with_options / { file_name = dotnet; arguments = ["repl",
00:00:17 v #63 > > "--exit-after-run", "--run",
00:00:17 v #64 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib",
00:00:17 v #65 > > "--output-path",
00:00:17 v #66 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb"];
00:00:17 v #67 > > options = { command = dotnet repl --exit-after-run --run
00:00:17 v #68 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib"
00:00:17 v #69 > > --output-path
00:00:17 v #70 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb";
00:00:17 v #71 > > cancellation_token = None; environment_variables =
00:00:17 v #72 > > Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line =
00:00:17 v #73 > > None; stdin = None; trace = false; working_directory = None } }
00:00:17 v #74 > > │ 00:00:01 v #4 > >
00:00:17 v #75 > > │ 00:00:01 v #5 > > ── markdown
00:00:17 v #76 > > ────────────────────────────────────────────────────────────────────
00:00:17 v #77 > > │ 00:00:01 v #6 > > │ # test (Polyglot)
00:00:17 v #78 > > │ 00:00:04 v #7 > >
00:00:17 v #79 > > │ 00:00:04 v #8 > > ── spiral
00:00:17 v #80 > > ──────────────────────────────────────────────────────────────────────
00:00:17 v #81 > > │ 00:00:04 v #9 > > //// test
00:00:17 v #82 > > │ 00:00:04 v #10 > >
00:00:17 v #83 > > │ 00:00:04 v #11 > > open testing
00:00:17 v #84 > > │ 00:00:08 v #12 > >
00:00:17 v #85 > > │ 00:00:08 v #13 > > ── spiral
00:00:17 v #86 > > ──────────────────────────────────────────────────────────────────────
00:00:17 v #87 > > │ 00:00:08 v #14 > > //// test
00:00:17 v #88 > > │ 00:00:08 v #15 > > //// print_code
00:00:17 v #89 > > │ 00:00:08 v #16 > >
00:00:17 v #90 > > │ 00:00:08 v #17 > > inl jp = [[ "J"; "P" ]]
00:00:17 v #91 > > │ 00:00:08 v #18 > > inl tf = [[ "T"; "F" ]]
00:00:17 v #92 > > │ 00:00:08 v #19 > > inl sn = [[ "S"; "N" ]]
00:00:17 v #93 > > │ 00:00:08 v #20 > > inl ie = [[ "I"; "E" ]]
00:00:17 v #94 > > │ 00:00:08 v #21 > >
00:00:17 v #95 > > │ 00:00:08 v #22 > > (ie, ([[]] : _ string))
00:00:17 v #96 > > │ 00:00:08 v #23 > > ||> listm.foldBack fun ie' acc =>
00:00:17 v #97 > > │ 00:00:08 v #24 > >     inl ssnn acc' jp' =
00:00:17 v #98 > > │ 00:00:08 v #25 > >         (sn, acc')
00:00:17 v #99 > > │ 00:00:08 v #26 > >         ||> listm.foldBack fun sn'
00:00:17 v #100 > > acc' =>
00:00:17 v #101 > > │ 00:00:08 v #27 > >             inl c' ie' sn' tf' jp' =
00:00:17 v #102 > > │ 00:00:08 v #28 > >
00:00:17 v #103 > > $'$"{!ie'}{!sn'}{!tf'}{!jp'}"'
00:00:17 v #104 > > │ 00:00:08 v #29 > >
00:00:17 v #105 > > │ 00:00:08 v #30 > >             if listm.length acc' %
00:00:17 v #106 > > 4i32 = 2 then
00:00:17 v #107 > > │ 00:00:08 v #31 > >                 (tf, acc')
00:00:17 v #108 > > │ 00:00:08 v #32 > >                 ||> listm.foldBack
00:00:17 v #109 > > fun tf' acc'' =>
00:00:17 v #110 > > │ 00:00:08 v #33 > >                     c' ie' sn' tf'
00:00:17 v #111 > > jp' :: acc''
00:00:17 v #112 > > │ 00:00:08 v #34 > >             else
00:00:17 v #113 > > │ 00:00:08 v #35 > >                 (acc', tf)
00:00:17 v #114 > > │ 00:00:08 v #36 > >                 ||> listm.fold fun
00:00:17 v #115 > > acc'' tf' =>
00:00:17 v #116 > > │ 00:00:08 v #37 > >                     c' ie' sn' tf'
00:00:17 v #117 > > jp' :: acc''
00:00:17 v #118 > > │ 00:00:08 v #38 > >     if acc = [[]] then
00:00:17 v #119 > > │ 00:00:08 v #39 > >         (acc, jp)
00:00:17 v #120 > > │ 00:00:08 v #40 > >         ||> listm.fold fun acc' jp'
00:00:17 v #121 > > =>
00:00:17 v #122 > > │ 00:00:08 v #41 > >             ssnn acc' jp'
00:00:17 v #123 > > │ 00:00:08 v #42 > >     else
00:00:17 v #124 > > │ 00:00:08 v #43 > >         (jp, acc)
00:00:17 v #125 > > │ 00:00:08 v #44 > >         ||> listm.foldBack fun jp'
00:00:17 v #126 > > acc' =>
00:00:17 v #127 > > │ 00:00:08 v #45 > >             ssnn acc' jp'
00:00:17 v #128 > > │ 00:00:08 v #46 > > |> listm'.box
00:00:17 v #129 > > │ 00:00:08 v #47 > > |> listm'.to_array'
00:00:17 v #130 > > │ 00:00:08 v #48 > > |> _assert_eq' ;[[
00:00:17 v #131 > > │ 00:00:08 v #49 > >     "ISTJ"; "ISFJ"; "INFJ"; "INTJ"
00:00:17 v #132 > > │ 00:00:08 v #50 > >     "ISTP"; "ISFP"; "INFP"; "INTP"
00:00:17 v #133 > > │ 00:00:08 v #51 > >     "ESTP"; "ESFP"; "ENFP"; "ENTP"
00:00:17 v #134 > > │ 00:00:08 v #52 > >     "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"
00:00:17 v #135 > > │ 00:00:08 v #53 > > ]]
00:00:17 v #136 > > │ 00:00:09 v #54 > >
00:00:17 v #137 > > │ 00:00:09 v #55 > > ── [ 970.08ms - stdout ]
00:00:17 v #138 > > ───────────────────────────────────────────────────────
00:00:17 v #139 > > │ 00:00:09 v #56 > > │ let rec method1
00:00:17 v #140 > > (v0 : bool) : bool =
00:00:17 v #141 > > │ 00:00:09 v #57 > > │     v0
00:00:17 v #142 > > │ 00:00:09 v #58 > > │ and closure0 (v0 :
00:00:17 v #143 > > string) () : unit =
00:00:17 v #144 > > │ 00:00:09 v #59 > > │     let v1 :
00:00:17 v #145 > > (string -> unit) = System.Console.WriteLine
00:00:17 v #146 > > │ 00:00:09 v #60 > > │     v1 v0
00:00:17 v #147 > > │ 00:00:09 v #61 > > │ and method0 () :
00:00:17 v #148 > > unit =
00:00:17 v #149 > > │ 00:00:09 v #62 > > │     let v0 :
00:00:17 v #150 > > string = "E"
00:00:17 v #151 > > │ 00:00:09 v #63 > > │     let v1 :
00:00:17 v #152 > > string = "N"
00:00:17 v #153 > > │ 00:00:09 v #64 > > │     let v2 :
00:00:17 v #154 > > string = "T"
00:00:17 v #155 > > │ 00:00:09 v #65 > > │     let v3 :
00:00:17 v #156 > > string = "J"
00:00:17 v #157 > > │ 00:00:09 v #66 > > │     let v4 :
00:00:17 v #158 > > string = $"{v0}{v1}{v2}{v3}"
00:00:17 v #159 > > │ 00:00:09 v #67 > > │     let v5 :
00:00:17 v #160 > > string = "F"
00:00:17 v #161 > > │ 00:00:09 v #68 > > │     let v6 :
00:00:17 v #162 > > string = $"{v0}{v1}{v5}{v3}"
00:00:17 v #163 > > │ 00:00:09 v #69 > > │     let v7 :
00:00:17 v #164 > > string = "S"
00:00:17 v #165 > > │ 00:00:09 v #70 > > │     let v8 :
00:00:17 v #166 > > string = $"{v0}{v7}{v5}{v3}"
00:00:17 v #167 > > │ 00:00:09 v #71 > > │     let v9 :
00:00:17 v #168 > > string = $"{v0}{v7}{v2}{v3}"
00:00:17 v #169 > > │ 00:00:09 v #72 > > │     let v10 :
00:00:17 v #170 > > string = "P"
00:00:17 v #171 > > │ 00:00:09 v #73 > > │     let v11 :
00:00:17 v #172 > > string = $"{v0}{v1}{v2}{v10}"
00:00:17 v #173 > > │ 00:00:09 v #74 > > │     let v12 :
00:00:17 v #174 > > string = $"{v0}{v1}{v5}{v10}"
00:00:17 v #175 > > │ 00:00:09 v #75 > > │     let v13 :
00:00:17 v #176 > > string = $"{v0}{v7}{v5}{v10}"
00:00:17 v #177 > > │ 00:00:09 v #76 > > │     let v14 :
00:00:17 v #178 > > string = $"{v0}{v7}{v2}{v10}"
00:00:17 v #179 > > │ 00:00:09 v #77 > > │     let v15 :
00:00:17 v #180 > > string = "I"
00:00:17 v #181 > > │ 00:00:09 v #78 > > │     let v16 :
00:00:17 v #182 > > string = $"{v15}{v1}{v2}{v10}"
00:00:17 v #183 > > │ 00:00:09 v #79 > > │     let v17 :
00:00:17 v #184 > > string = $"{v15}{v1}{v5}{v10}"
00:00:17 v #185 > > │ 00:00:09 v #80 > > │     let v18 :
00:00:17 v #186 > > string = $"{v15}{v7}{v5}{v10}"
00:00:17 v #187 > > │ 00:00:09 v #81 > > │     let v19 :
00:00:17 v #188 > > string = $"{v15}{v7}{v2}{v10}"
00:00:17 v #189 > > │ 00:00:09 v #82 > > │     let v20 :
00:00:17 v #190 > > string = $"{v15}{v1}{v2}{v3}"
00:00:17 v #191 > > │ 00:00:09 v #83 > > │     let v21 :
00:00:17 v #192 > > string = $"{v15}{v1}{v5}{v3}"
00:00:17 v #193 > > │ 00:00:09 v #84 > > │     let v22 :
00:00:17 v #194 > > string = $"{v15}{v7}{v5}{v3}"
00:00:17 v #195 > > │ 00:00:09 v #85 > > │     let v23 :
00:00:17 v #196 > > string = $"{v15}{v7}{v2}{v3}"
00:00:17 v #197 > > │ 00:00:09 v #86 > > │     let v24 :
00:00:17 v #198 > > string list = []
00:00:17 v #199 > > │ 00:00:09 v #87 > > │     let v25 :
00:00:17 v #200 > > string list = v4 :: v24
00:00:17 v #201 > > │ 00:00:09 v #88 > > │     let v28 :
00:00:17 v #202 > > string list = v6 :: v25
00:00:17 v #203 > > │ 00:00:09 v #89 > > │     let v31 :
00:00:17 v #204 > > string list = v8 :: v28
00:00:17 v #205 > > │ 00:00:09 v #90 > > │     let v34 :
00:00:17 v #206 > > string list = v9 :: v31
00:00:17 v #207 > > │ 00:00:09 v #91 > > │     let v37 :
00:00:17 v #208 > > string list = v11 :: v34
00:00:17 v #209 > > │ 00:00:09 v #92 > > │     let v40 :
00:00:17 v #210 > > string list = v12 :: v37
00:00:17 v #211 > > │ 00:00:09 v #93 > > │     let v43 :
00:00:17 v #212 > > string list = v13 :: v40
00:00:17 v #213 > > │ 00:00:09 v #94 > > │     let v46 :
00:00:17 v #214 > > string list = v14 :: v43
00:00:17 v #215 > > │ 00:00:09 v #95 > > │     let v49 :
00:00:17 v #216 > > string list = v16 :: v46
00:00:17 v #217 > > │ 00:00:09 v #96 > > │     let v52 :
00:00:17 v #218 > > string list = v17 :: v49
00:00:17 v #219 > > │ 00:00:09 v #97 > > │     let v55 :
00:00:17 v #220 > > string list = v18 :: v52
00:00:17 v #221 > > │ 00:00:09 v #98 > > │     let v58 :
00:00:17 v #222 > > string list = v19 :: v55
00:00:17 v #223 > > │ 00:00:09 v #99 > > │     let v61 :
00:00:17 v #224 > > string list = v20 :: v58
00:00:17 v #225 > > │ 00:00:09 v #100 > > │     let v64 :
00:00:17 v #226 > > string list = v21 :: v61
00:00:17 v #227 > > │ 00:00:09 v #101 > > │     let v67 :
00:00:17 v #228 > > string list = v22 :: v64
00:00:17 v #229 > > │ 00:00:09 v #102 > > │     let v70 :
00:00:17 v #230 > > string list = v23 :: v67
00:00:17 v #231 > > │ 00:00:09 v #103 > > │     let v73 :
00:00:17 v #232 > > (string list -> (string [])) = List.toArray
00:00:17 v #233 > > │ 00:00:09 v #104 > > │     let v74 :
00:00:17 v #234 > > (string []) = v73 v70
00:00:17 v #235 > > │ 00:00:09 v #105 > > │     let v77 :
00:00:17 v #236 > > string = "ISTJ"
00:00:17 v #237 > > │ 00:00:09 v #106 > > │     let v78 :
00:00:17 v #238 > > string = "ISFJ"
00:00:17 v #239 > > │ 00:00:09 v #107 > > │     let v79 :
00:00:17 v #240 > > string = "INFJ"
00:00:17 v #241 > > │ 00:00:09 v #108 > > │     let v80 :
00:00:17 v #242 > > string = "INTJ"
00:00:17 v #243 > > │ 00:00:09 v #109 > > │     let v81 :
00:00:17 v #244 > > string = "ISTP"
00:00:17 v #245 > > │ 00:00:09 v #110 > > │     let v82 :
00:00:17 v #246 > > string = "ISFP"
00:00:17 v #247 > > │ 00:00:09 v #111 > > │     let v83 :
00:00:17 v #248 > > string = "INFP"
00:00:17 v #249 > > │ 00:00:09 v #112 > > │     let v84 :
00:00:17 v #250 > > string = "INTP"
00:00:17 v #251 > > │ 00:00:09 v #113 > > │     let v85 :
00:00:17 v #252 > > string = "ESTP"
00:00:17 v #253 > > │ 00:00:09 v #114 > > │     let v86 :
00:00:17 v #254 > > string = "ESFP"
00:00:17 v #255 > > │ 00:00:09 v #115 > > │     let v87 :
00:00:17 v #256 > > string = "ENFP"
00:00:17 v #257 > > │ 00:00:09 v #116 > > │     let v88 :
00:00:17 v #258 > > string = "ENTP"
00:00:17 v #259 > > │ 00:00:09 v #117 > > │     let v89 :
00:00:17 v #260 > > string = "ESTJ"
00:00:17 v #261 > > │ 00:00:09 v #118 > > │     let v90 :
00:00:17 v #262 > > string = "ESFJ"
00:00:17 v #263 > > │ 00:00:09 v #119 > > │     let v91 :
00:00:17 v #264 > > string = "ENFJ"
00:00:17 v #265 > > │ 00:00:09 v #120 > > │     let v92 :
00:00:17 v #266 > > string = "ENTJ"
00:00:17 v #267 > > │ 00:00:09 v #121 > > │     let v93 :
00:00:17 v #268 > > (string []) = [|v77; v78; v79; v80; v81; v82;
00:00:17 v #269 > > │ 00:00:09 v #122 > > v83; v84; v85; v86; v87; v88; v89;
00:00:17 v #270 > > v90; v91; v92|]
00:00:17 v #271 > > │ 00:00:09 v #123 > > │     let v94 :
00:00:17 v #272 > > bool = v74 = v93
00:00:17 v #273 > > │ 00:00:09 v #124 > > │     let v98 :
00:00:17 v #274 > > bool =
00:00:17 v #275 > > │ 00:00:09 v #125 > > │         if v94
00:00:17 v #276 > > then
00:00:17 v #277 > > │ 00:00:09 v #126 > > │             true
00:00:17 v #278 > > │ 00:00:09 v #127 > > │         else
00:00:17 v #279 > > │ 00:00:09 v #128 > > │
00:00:17 v #280 > > method1(v94)
00:00:17 v #281 > > │ 00:00:09 v #129 > > │     let v99 :
00:00:17 v #282 > > string = "__assert_eq'"
00:00:17 v #283 > > │ 00:00:09 v #130 > > │     let v100 :
00:00:17 v #284 > > string = $"{v99} / actual: %A{v74} / expected:
00:00:17 v #285 > > │ 00:00:09 v #131 > > %A{v93}"
00:00:17 v #286 > > │ 00:00:09 v #132 > > │     let v103 :
00:00:17 v #287 > > unit = ()
00:00:17 v #288 > > │ 00:00:09 v #133 > > │     let v104 :
00:00:17 v #289 > > (unit -> unit) = closure0(v100)
00:00:17 v #290 > > │ 00:00:09 v #134 > > │     let v105 :
00:00:17 v #291 > > unit = (fun () -> v104 (); v103) ()
00:00:17 v #292 > > │ 00:00:09 v #135 > > │     let v107 :
00:00:17 v #293 > > bool = v98 = false
00:00:17 v #294 > > │ 00:00:09 v #136 > > │     if v107 then
00:00:17 v #295 > > │ 00:00:09 v #137 > > │
00:00:17 v #296 > > failwith<unit> v100
00:00:17 v #297 > > │ 00:00:09 v #138 > > │ method0()
00:00:17 v #298 > > │ 00:00:09 v #139 > > │
00:00:17 v #299 > > │ 00:00:09 v #140 > > │ __assert_eq'
00:00:17 v #300 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ";
00:00:17 v #301 > > │ 00:00:09 v #141 > > "ISTP"; "ISFP"; "INFP"; "INTP";
00:00:17 v #302 > > "ESTP"; "ESFP";
00:00:17 v #303 > > │ 00:00:09 v #142 > > │   "ENFP"; "ENTP";
00:00:17 v #304 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|]
00:00:17 v #305 > > │ 00:00:09 v #143 > > expected: [|"ISTJ"; "ISFJ"; "INFJ";
00:00:17 v #306 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP";
00:00:17 v #307 > > │ 00:00:09 v #144 > > "ESTP"; "ESFP";
00:00:17 v #308 > > │ 00:00:09 v #145 > > │   "ENFP"; "ENTP";
00:00:17 v #309 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|]
00:00:17 v #310 > > │ 00:00:09 v #146 > > │
00:00:17 v #311 > > │ 00:00:09 v #147 > >
00:00:17 v #312 > > │ 00:00:09 v #148 > > ── spiral
00:00:17 v #313 > > ──────────────────────────────────────────────────────────────────────
00:00:17 v #314 > > │ 00:00:09 v #149 > > //// test
00:00:17 v #315 > > │ 00:00:09 v #150 > > //// print_code
00:00:17 v #316 > > │ 00:00:09 v #151 > >
00:00:17 v #317 > > │ 00:00:09 v #152 > > inl i_e =
00:00:17 v #318 > > │ 00:00:09 v #153 > >     listm'.replicate 8i32 "I" ++
00:00:17 v #319 > > listm'.replicate 8i32 "E"
00:00:17 v #320 > > │ 00:00:09 v #154 > > inl s_n =
00:00:17 v #321 > > │ 00:00:09 v #155 > >     [[ "S"; "S"; "N"; "N" ]]
00:00:17 v #322 > > │ 00:00:09 v #156 > >     |> listm'.replicate 4i32
00:00:17 v #323 > > │ 00:00:09 v #157 > >     |> listm'.collect id
00:00:17 v #324 > > │ 00:00:09 v #158 > > inl t_f =
00:00:17 v #325 > > │ 00:00:09 v #159 > >     [[ "T"; "F"; "F"; "T" ]]
00:00:17 v #326 > > │ 00:00:09 v #160 > >     |> listm'.replicate 4i32
00:00:17 v #327 > > │ 00:00:09 v #161 > >     |> listm'.collect id
00:00:17 v #328 > > │ 00:00:09 v #162 > > inl j_p =
00:00:17 v #329 > > │ 00:00:09 v #163 > >     [[ "J"; "J"; "J"; "J" ]]
00:00:17 v #330 > > │ 00:00:09 v #164 > >     ++ [[ "P"; "P"; "P"; "P" ]]
00:00:17 v #331 > > │ 00:00:09 v #165 > >     ++ [[ "P"; "P"; "P"; "P" ]]
00:00:17 v #332 > > │ 00:00:09 v #166 > >     ++ [[ "J"; "J"; "J"; "J" ]]
00:00:17 v #333 > > │ 00:00:09 v #167 > > inl mbti =
00:00:17 v #334 > > │ 00:00:09 v #168 > >     listm'.map4 (fun a b c d =>
00:00:17 v #335 > > $'$"{!a}{!b}{!c}{!d}"') i_e s_n t_f j_p
00:00:17 v #336 > > │ 00:00:09 v #169 > >
00:00:17 v #337 > > │ 00:00:09 v #170 > > mbti
00:00:17 v #338 > > │ 00:00:09 v #171 > > |> listm'.box
00:00:17 v #339 > > │ 00:00:09 v #172 > > |> listm'.to_array'
00:00:17 v #340 > > │ 00:00:09 v #173 > > |> _assert_eq' ;[[
00:00:17 v #341 > > │ 00:00:09 v #174 > >     "ISTJ"; "ISFJ"; "INFJ"; "INTJ"
00:00:17 v #342 > > │ 00:00:09 v #175 > >     "ISTP"; "ISFP"; "INFP"; "INTP"
00:00:17 v #343 > > │ 00:00:09 v #176 > >     "ESTP"; "ESFP"; "ENFP"; "ENTP"
00:00:17 v #344 > > │ 00:00:09 v #177 > >     "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"
00:00:17 v #345 > > │ 00:00:09 v #178 > > ]]
00:00:17 v #346 > > │ 00:00:09 v #179 > >
00:00:17 v #347 > > │ 00:00:09 v #180 > > ── [ 461.14ms - stdout ]
00:00:17 v #348 > > ───────────────────────────────────────────────────────
00:00:17 v #349 > > │ 00:00:09 v #181 > > │ let rec method1
00:00:17 v #350 > > (v0 : bool) : bool =
00:00:17 v #351 > > │ 00:00:09 v #182 > > │     v0
00:00:17 v #352 > > │ 00:00:09 v #183 > > │ and closure0 (v0
00:00:17 v #353 > > : string) () : unit =
00:00:17 v #354 > > │ 00:00:09 v #184 > > │     let v1 :
00:00:17 v #355 > > (string -> unit) = System.Console.WriteLine
00:00:17 v #356 > > │ 00:00:09 v #185 > > │     v1 v0
00:00:17 v #357 > > │ 00:00:09 v #186 > > │ and method0 () :
00:00:17 v #358 > > unit =
00:00:17 v #359 > > │ 00:00:09 v #187 > > │     let v0 :
00:00:17 v #360 > > string = "I"
00:00:17 v #361 > > │ 00:00:09 v #188 > > │     let v1 :
00:00:17 v #362 > > string = "S"
00:00:17 v #363 > > │ 00:00:09 v #189 > > │     let v2 :
00:00:17 v #364 > > string = "T"
00:00:17 v #365 > > │ 00:00:09 v #190 > > │     let v3 :
00:00:17 v #366 > > string = "J"
00:00:17 v #367 > > │ 00:00:09 v #191 > > │     let v4 :
00:00:17 v #368 > > string = $"{v0}{v1}{v2}{v3}"
00:00:17 v #369 > > │ 00:00:09 v #192 > > │     let v5 :
00:00:17 v #370 > > string = "F"
00:00:17 v #371 > > │ 00:00:09 v #193 > > │     let v6 :
00:00:17 v #372 > > string = $"{v0}{v1}{v5}{v3}"
00:00:17 v #373 > > │ 00:00:09 v #194 > > │     let v7 :
00:00:17 v #374 > > string = "N"
00:00:17 v #375 > > │ 00:00:09 v #195 > > │     let v8 :
00:00:17 v #376 > > string = $"{v0}{v7}{v5}{v3}"
00:00:17 v #377 > > │ 00:00:09 v #196 > > │     let v9 :
00:00:17 v #378 > > string = $"{v0}{v7}{v2}{v3}"
00:00:17 v #379 > > │ 00:00:09 v #197 > > │     let v10 :
00:00:17 v #380 > > string = "P"
00:00:17 v #381 > > │ 00:00:09 v #198 > > │     let v11 :
00:00:17 v #382 > > string = $"{v0}{v1}{v2}{v10}"
00:00:17 v #383 > > │ 00:00:09 v #199 > > │     let v12 :
00:00:17 v #384 > > string = $"{v0}{v1}{v5}{v10}"
00:00:17 v #385 > > │ 00:00:09 v #200 > > │     let v13 :
00:00:17 v #386 > > string = $"{v0}{v7}{v5}{v10}"
00:00:17 v #387 > > │ 00:00:09 v #201 > > │     let v14 :
00:00:17 v #388 > > string = $"{v0}{v7}{v2}{v10}"
00:00:17 v #389 > > │ 00:00:09 v #202 > > │     let v15 :
00:00:17 v #390 > > string = "E"
00:00:17 v #391 > > │ 00:00:09 v #203 > > │     let v16 :
00:00:17 v #392 > > string = $"{v15}{v1}{v2}{v10}"
00:00:17 v #393 > > │ 00:00:09 v #204 > > │     let v17 :
00:00:17 v #394 > > string = $"{v15}{v1}{v5}{v10}"
00:00:17 v #395 > > │ 00:00:09 v #205 > > │     let v18 :
00:00:17 v #396 > > string = $"{v15}{v7}{v5}{v10}"
00:00:17 v #397 > > │ 00:00:09 v #206 > > │     let v19 :
00:00:17 v #398 > > string = $"{v15}{v7}{v2}{v10}"
00:00:17 v #399 > > │ 00:00:09 v #207 > > │     let v20 :
00:00:17 v #400 > > string = $"{v15}{v1}{v2}{v3}"
00:00:17 v #401 > > │ 00:00:09 v #208 > > │     let v21 :
00:00:17 v #402 > > string = $"{v15}{v1}{v5}{v3}"
00:00:17 v #403 > > │ 00:00:09 v #209 > > │     let v22 :
00:00:17 v #404 > > string = $"{v15}{v7}{v5}{v3}"
00:00:17 v #405 > > │ 00:00:09 v #210 > > │     let v23 :
00:00:17 v #406 > > string = $"{v15}{v7}{v2}{v3}"
00:00:17 v #407 > > │ 00:00:09 v #211 > > │     let v24 :
00:00:17 v #408 > > string list = []
00:00:17 v #409 > > │ 00:00:09 v #212 > > │     let v25 :
00:00:17 v #410 > > string list = v23 :: v24
00:00:17 v #411 > > │ 00:00:09 v #213 > > │     let v28 :
00:00:17 v #412 > > string list = v22 :: v25
00:00:17 v #413 > > │ 00:00:09 v #214 > > │     let v31 :
00:00:17 v #414 > > string list = v21 :: v28
00:00:17 v #415 > > │ 00:00:09 v #215 > > │     let v34 :
00:00:17 v #416 > > string list = v20 :: v31
00:00:17 v #417 > > │ 00:00:09 v #216 > > │     let v37 :
00:00:17 v #418 > > string list = v19 :: v34
00:00:17 v #419 > > │ 00:00:09 v #217 > > │     let v40 :
00:00:17 v #420 > > string list = v18 :: v37
00:00:17 v #421 > > │ 00:00:09 v #218 > > │     let v43 :
00:00:17 v #422 > > string list = v17 :: v40
00:00:17 v #423 > > │ 00:00:09 v #219 > > │     let v46 :
00:00:17 v #424 > > string list = v16 :: v43
00:00:17 v #425 > > │ 00:00:09 v #220 > > │     let v49 :
00:00:17 v #426 > > string list = v14 :: v46
00:00:17 v #427 > > │ 00:00:09 v #221 > > │     let v52 :
00:00:17 v #428 > > string list = v13 :: v49
00:00:17 v #429 > > │ 00:00:09 v #222 > > │     let v55 :
00:00:17 v #430 > > string list = v12 :: v52
00:00:17 v #431 > > │ 00:00:09 v #223 > > │     let v58 :
00:00:17 v #432 > > string list = v11 :: v55
00:00:17 v #433 > > │ 00:00:09 v #224 > > │     let v61 :
00:00:17 v #434 > > string list = v9 :: v58
00:00:17 v #435 > > │ 00:00:09 v #225 > > │     let v64 :
00:00:17 v #436 > > string list = v8 :: v61
00:00:17 v #437 > > │ 00:00:09 v #226 > > │     let v67 :
00:00:17 v #438 > > string list = v6 :: v64
00:00:17 v #439 > > │ 00:00:09 v #227 > > │     let v70 :
00:00:17 v #440 > > string list = v4 :: v67
00:00:17 v #441 > > │ 00:00:09 v #228 > > │     let v73 :
00:00:17 v #442 > > (string list -> (string [])) = List.toArray
00:00:17 v #443 > > │ 00:00:09 v #229 > > │     let v74 :
00:00:17 v #444 > > (string []) = v73 v70
00:00:17 v #445 > > │ 00:00:09 v #230 > > │     let v77 :
00:00:17 v #446 > > string = "ISTJ"
00:00:17 v #447 > > │ 00:00:09 v #231 > > │     let v78 :
00:00:17 v #448 > > string = "ISFJ"
00:00:17 v #449 > > │ 00:00:09 v #232 > > │     let v79 :
00:00:17 v #450 > > string = "INFJ"
00:00:17 v #451 > > │ 00:00:09 v #233 > > │     let v80 :
00:00:17 v #452 > > string = "INTJ"
00:00:17 v #453 > > │ 00:00:09 v #234 > > │     let v81 :
00:00:17 v #454 > > string = "ISTP"
00:00:17 v #455 > > │ 00:00:09 v #235 > > │     let v82 :
00:00:17 v #456 > > string = "ISFP"
00:00:17 v #457 > > │ 00:00:09 v #236 > > │     let v83 :
00:00:17 v #458 > > string = "INFP"
00:00:17 v #459 > > │ 00:00:09 v #237 > > │     let v84 :
00:00:17 v #460 > > string = "INTP"
00:00:17 v #461 > > │ 00:00:09 v #238 > > │     let v85 :
00:00:17 v #462 > > string = "ESTP"
00:00:17 v #463 > > │ 00:00:09 v #239 > > │     let v86 :
00:00:17 v #464 > > string = "ESFP"
00:00:17 v #465 > > │ 00:00:09 v #240 > > │     let v87 :
00:00:17 v #466 > > string = "ENFP"
00:00:17 v #467 > > │ 00:00:09 v #241 > > │     let v88 :
00:00:17 v #468 > > string = "ENTP"
00:00:17 v #469 > > │ 00:00:09 v #242 > > │     let v89 :
00:00:17 v #470 > > string = "ESTJ"
00:00:17 v #471 > > │ 00:00:09 v #243 > > │     let v90 :
00:00:17 v #472 > > string = "ESFJ"
00:00:17 v #473 > > │ 00:00:09 v #244 > > │     let v91 :
00:00:17 v #474 > > string = "ENFJ"
00:00:17 v #475 > > │ 00:00:09 v #245 > > │     let v92 :
00:00:17 v #476 > > string = "ENTJ"
00:00:17 v #477 > > │ 00:00:09 v #246 > > │     let v93 :
00:00:17 v #478 > > (string []) = [|v77; v78; v79; v80; v81; v82;
00:00:17 v #479 > > │ 00:00:09 v #247 > > v83; v84; v85; v86; v87; v88; v89;
00:00:17 v #480 > > v90; v91; v92|]
00:00:17 v #481 > > │ 00:00:09 v #248 > > │     let v94 :
00:00:17 v #482 > > bool = v74 = v93
00:00:17 v #483 > > │ 00:00:09 v #249 > > │     let v98 :
00:00:17 v #484 > > bool =
00:00:17 v #485 > > │ 00:00:09 v #250 > > │         if v94
00:00:17 v #486 > > then
00:00:17 v #487 > > │ 00:00:09 v #251 > > │             true
00:00:17 v #488 > > │ 00:00:09 v #252 > > │         else
00:00:17 v #489 > > │ 00:00:09 v #253 > > │
00:00:17 v #490 > > method1(v94)
00:00:17 v #491 > > │ 00:00:09 v #254 > > │     let v99 :
00:00:17 v #492 > > string = "__assert_eq'"
00:00:17 v #493 > > │ 00:00:09 v #255 > > │     let v100 :
00:00:17 v #494 > > string = $"{v99} / actual: %A{v74} / expected:
00:00:17 v #495 > > │ 00:00:09 v #256 > > %A{v93}"
00:00:17 v #496 > > │ 00:00:09 v #257 > > │     let v103 :
00:00:17 v #497 > > unit = ()
00:00:17 v #498 > > │ 00:00:09 v #258 > > │     let v104 :
00:00:17 v #499 > > (unit -> unit) = closure0(v100)
00:00:17 v #500 > > │ 00:00:09 v #259 > > │     let v105 :
00:00:17 v #501 > > unit = (fun () -> v104 (); v103) ()
00:00:17 v #502 > > │ 00:00:09 v #260 > > │     let v107 :
00:00:17 v #503 > > bool = v98 = false
00:00:17 v #504 > > │ 00:00:09 v #261 > > │     if v107 then
00:00:17 v #505 > > │ 00:00:09 v #262 > > │
00:00:17 v #506 > > failwith<unit> v100
00:00:17 v #507 > > │ 00:00:09 v #263 > > │ method0()
00:00:17 v #508 > > │ 00:00:09 v #264 > > │
00:00:17 v #509 > > │ 00:00:09 v #265 > > │ __assert_eq'
00:00:17 v #510 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ";
00:00:17 v #511 > > │ 00:00:09 v #266 > > "ISTP"; "ISFP"; "INFP"; "INTP";
00:00:17 v #512 > > "ESTP"; "ESFP";
00:00:17 v #513 > > │ 00:00:09 v #267 > > │   "ENFP"; "ENTP";
00:00:17 v #514 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|]
00:00:17 v #515 > > │ 00:00:09 v #268 > > expected: [|"ISTJ"; "ISFJ"; "INFJ";
00:00:17 v #516 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP";
00:00:17 v #517 > > │ 00:00:09 v #269 > > "ESTP"; "ESFP";
00:00:17 v #518 > > │ 00:00:09 v #270 > > │   "ENFP"; "ENTP";
00:00:17 v #519 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|]
00:00:17 v #520 > > │ 00:00:09 v #271 > > │
00:00:17 v #521 > > │ 00:00:09 v #272 > >
00:00:17 v #522 > > │ 00:00:09 v #273 > > ── spiral
00:00:17 v #523 > > ──────────────────────────────────────────────────────────────────────
00:00:17 v #524 > > │ 00:00:09 v #274 > > //// test
00:00:17 v #525 > > │ 00:00:09 v #275 > > //// print_code
00:00:17 v #526 > > │ 00:00:09 v #276 > >
00:00:17 v #527 > > │ 00:00:09 v #277 > > fun i =>
00:00:17 v #528 > > │ 00:00:09 v #278 > >     inl i_e =
00:00:17 v #529 > > │ 00:00:09 v #279 > >         if i < 8
00:00:17 v #530 > > │ 00:00:09 v #280 > >         then "I"
00:00:17 v #531 > > │ 00:00:09 v #281 > >         else "E"
00:00:17 v #532 > > │ 00:00:09 v #282 > >     inl s_n =
00:00:17 v #533 > > │ 00:00:09 v #283 > >         inl group = (i / 2) % 2
00:00:17 v #534 > > │ 00:00:09 v #284 > >         if group = 0
00:00:17 v #535 > > │ 00:00:09 v #285 > >         then "S"
00:00:17 v #536 > > │ 00:00:09 v #286 > >         else "N"
00:00:17 v #537 > > │ 00:00:09 v #287 > >     inl t_f =
00:00:17 v #538 > > │ 00:00:09 v #288 > >         match i % 4 with
00:00:17 v #539 > > │ 00:00:09 v #289 > >         | 0 => "T"
00:00:17 v #540 > > │ 00:00:09 v #290 > >         | 1 => "F"
00:00:17 v #541 > > │ 00:00:09 v #291 > >         | 2 => "F"
00:00:17 v #542 > > │ 00:00:09 v #292 > >         | _ => "T"
00:00:17 v #543 > > │ 00:00:09 v #293 > >     inl j_p =
00:00:17 v #544 > > │ 00:00:09 v #294 > >         if i < 4
00:00:17 v #545 > > │ 00:00:09 v #295 > >         then "J"
00:00:17 v #546 > > │ 00:00:09 v #296 > >         elif i < 12
00:00:17 v #547 > > │ 00:00:09 v #297 > >         then "P"
00:00:17 v #548 > > │ 00:00:09 v #298 > >         else "J"
00:00:17 v #549 > > │ 00:00:09 v #299 > >     $'$"{!i_e}{!s_n}{!t_f}{!j_p}"'
00:00:17 v #550 > > │ 00:00:09 v #300 > > |> listm.init 16i32
00:00:17 v #551 > > │ 00:00:09 v #301 > > |> listm'.box
00:00:17 v #552 > > │ 00:00:09 v #302 > > |> listm'.to_array'
00:00:17 v #553 > > │ 00:00:09 v #303 > > |> _assert_eq' ;[[
00:00:17 v #554 > > │ 00:00:09 v #304 > >     "ISTJ"; "ISFJ"; "INFJ"; "INTJ"
00:00:17 v #555 > > │ 00:00:09 v #305 > >     "ISTP"; "ISFP"; "INFP"; "INTP"
00:00:17 v #556 > > │ 00:00:09 v #306 > >     "ESTP"; "ESFP"; "ENFP"; "ENTP"
00:00:17 v #557 > > │ 00:00:09 v #307 > >     "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"
00:00:17 v #558 > > │ 00:00:09 v #308 > > ]]
00:00:17 v #559 > > │ 00:00:09 v #309 > >
00:00:17 v #560 > > │ 00:00:09 v #310 > > ── [ 302.74ms - stdout ]
00:00:17 v #561 > > ───────────────────────────────────────────────────────
00:00:17 v #562 > > │ 00:00:09 v #311 > > │ let rec method1
00:00:17 v #563 > > (v0 : bool) : bool =
00:00:17 v #564 > > │ 00:00:09 v #312 > > │     v0
00:00:17 v #565 > > │ 00:00:09 v #313 > > │ and closure0 (v0
00:00:17 v #566 > > : string) () : unit =
00:00:17 v #567 > > │ 00:00:09 v #314 > > │     let v1 :
00:00:17 v #568 > > (string -> unit) = System.Console.WriteLine
00:00:17 v #569 > > │ 00:00:09 v #315 > > │     v1 v0
00:00:17 v #570 > > │ 00:00:09 v #316 > > │ and method0 () :
00:00:17 v #571 > > unit =
00:00:17 v #572 > > │ 00:00:09 v #317 > > │     let v0 :
00:00:17 v #573 > > string = "I"
00:00:17 v #574 > > │ 00:00:09 v #318 > > │     let v1 :
00:00:17 v #575 > > string = "S"
00:00:17 v #576 > > │ 00:00:09 v #319 > > │     let v2 :
00:00:17 v #577 > > string = "T"
00:00:17 v #578 > > │ 00:00:09 v #320 > > │     let v3 :
00:00:17 v #579 > > string = "J"
00:00:17 v #580 > > │ 00:00:09 v #321 > > │     let v4 :
00:00:17 v #581 > > string = $"{v0}{v1}{v2}{v3}"
00:00:17 v #582 > > │ 00:00:09 v #322 > > │     let v5 :
00:00:17 v #583 > > string = "F"
00:00:17 v #584 > > │ 00:00:09 v #323 > > │     let v6 :
00:00:17 v #585 > > string = $"{v0}{v1}{v5}{v3}"
00:00:17 v #586 > > │ 00:00:09 v #324 > > │     let v7 :
00:00:17 v #587 > > string = "N"
00:00:17 v #588 > > │ 00:00:09 v #325 > > │     let v8 :
00:00:17 v #589 > > string = $"{v0}{v7}{v5}{v3}"
00:00:17 v #590 > > │ 00:00:09 v #326 > > │     let v9 :
00:00:17 v #591 > > string = $"{v0}{v7}{v2}{v3}"
00:00:17 v #592 > > │ 00:00:09 v #327 > > │     let v10 :
00:00:17 v #593 > > string = "P"
00:00:17 v #594 > > │ 00:00:09 v #328 > > │     let v11 :
00:00:17 v #595 > > string = $"{v0}{v1}{v2}{v10}"
00:00:17 v #596 > > │ 00:00:09 v #329 > > │     let v12 :
00:00:17 v #597 > > string = $"{v0}{v1}{v5}{v10}"
00:00:17 v #598 > > │ 00:00:09 v #330 > > │     let v13 :
00:00:17 v #599 > > string = $"{v0}{v7}{v5}{v10}"
00:00:17 v #600 > > │ 00:00:09 v #331 > > │     let v14 :
00:00:17 v #601 > > string = $"{v0}{v7}{v2}{v10}"
00:00:17 v #602 > > │ 00:00:09 v #332 > > │     let v15 :
00:00:17 v #603 > > string = "E"
00:00:17 v #604 > > │ 00:00:09 v #333 > > │     let v16 :
00:00:17 v #605 > > string = $"{v15}{v1}{v2}{v10}"
00:00:17 v #606 > > │ 00:00:09 v #334 > > │     let v17 :
00:00:17 v #607 > > string = $"{v15}{v1}{v5}{v10}"
00:00:17 v #608 > > │ 00:00:09 v #335 > > │     let v18 :
00:00:17 v #609 > > string = $"{v15}{v7}{v5}{v10}"
00:00:17 v #610 > > │ 00:00:09 v #336 > > │     let v19 :
00:00:17 v #611 > > string = $"{v15}{v7}{v2}{v10}"
00:00:17 v #612 > > │ 00:00:09 v #337 > > │     let v20 :
00:00:17 v #613 > > string = $"{v15}{v1}{v2}{v3}"
00:00:17 v #614 > > │ 00:00:09 v #338 > > │     let v21 :
00:00:17 v #615 > > string = $"{v15}{v1}{v5}{v3}"
00:00:17 v #616 > > │ 00:00:09 v #339 > > │     let v22 :
00:00:17 v #617 > > string = $"{v15}{v7}{v5}{v3}"
00:00:17 v #618 > > │ 00:00:09 v #340 > > │     let v23 :
00:00:17 v #619 > > string = $"{v15}{v7}{v2}{v3}"
00:00:17 v #620 > > │ 00:00:09 v #341 > > │     let v24 :
00:00:17 v #621 > > string list = []
00:00:17 v #622 > > │ 00:00:09 v #342 > > │     let v25 :
00:00:17 v #623 > > string list = v23 :: v24
00:00:17 v #624 > > │ 00:00:09 v #343 > > │     let v28 :
00:00:17 v #625 > > string list = v22 :: v25
00:00:17 v #626 > > │ 00:00:09 v #344 > > │     let v31 :
00:00:17 v #627 > > string list = v21 :: v28
00:00:17 v #628 > > │ 00:00:09 v #345 > > │     let v34 :
00:00:17 v #629 > > string list = v20 :: v31
00:00:17 v #630 > > │ 00:00:09 v #346 > > │     let v37 :
00:00:17 v #631 > > string list = v19 :: v34
00:00:17 v #632 > > │ 00:00:09 v #347 > > │     let v40 :
00:00:17 v #633 > > string list = v18 :: v37
00:00:17 v #634 > > │ 00:00:09 v #348 > > │     let v43 :
00:00:17 v #635 > > string list = v17 :: v40
00:00:17 v #636 > > │ 00:00:09 v #349 > > │     let v46 :
00:00:17 v #637 > > string list = v16 :: v43
00:00:17 v #638 > > │ 00:00:09 v #350 > > │     let v49 :
00:00:17 v #639 > > string list = v14 :: v46
00:00:17 v #640 > > │ 00:00:09 v #351 > > │     let v52 :
00:00:17 v #641 > > string list = v13 :: v49
00:00:17 v #642 > > │ 00:00:09 v #352 > > │     let v55 :
00:00:17 v #643 > > string list = v12 :: v52
00:00:17 v #644 > > │ 00:00:09 v #353 > > │     let v58 :
00:00:17 v #645 > > string list = v11 :: v55
00:00:17 v #646 > > │ 00:00:09 v #354 > > │     let v61 :
00:00:17 v #647 > > string list = v9 :: v58
00:00:17 v #648 > > │ 00:00:09 v #355 > > │     let v64 :
00:00:17 v #649 > > string list = v8 :: v61
00:00:17 v #650 > > │ 00:00:09 v #356 > > │     let v67 :
00:00:17 v #651 > > string list = v6 :: v64
00:00:17 v #652 > > │ 00:00:09 v #357 > > │     let v70 :
00:00:17 v #653 > > string list = v4 :: v67
00:00:17 v #654 > > │ 00:00:09 v #358 > > │     let v73 :
00:00:17 v #655 > > (string list -> (string [])) = List.toArray
00:00:17 v #656 > > │ 00:00:09 v #359 > > │     let v74 :
00:00:17 v #657 > > (string []) = v73 v70
00:00:17 v #658 > > │ 00:00:09 v #360 > > │     let v77 :
00:00:17 v #659 > > string = "ISTJ"
00:00:17 v #660 > > │ 00:00:09 v #361 > > │     let v78 :
00:00:17 v #661 > > string = "ISFJ"
00:00:17 v #662 > > │ 00:00:09 v #362 > > │     let v79 :
00:00:17 v #663 > > string = "INFJ"
00:00:17 v #664 > > │ 00:00:09 v #363 > > │     let v80 :
00:00:17 v #665 > > string = "INTJ"
00:00:17 v #666 > > │ 00:00:09 v #364 > > │     let v81 :
00:00:17 v #667 > > string = "ISTP"
00:00:17 v #668 > > │ 00:00:09 v #365 > > │     let v82 :
00:00:17 v #669 > > string = "ISFP"
00:00:17 v #670 > > │ 00:00:09 v #366 > > │     let v83 :
00:00:17 v #671 > > string = "INFP"
00:00:17 v #672 > > │ 00:00:09 v #367 > > │     let v84 :
00:00:17 v #673 > > string = "INTP"
00:00:17 v #674 > > │ 00:00:09 v #368 > > │     let v85 :
00:00:17 v #675 > > string = "ESTP"
00:00:17 v #676 > > │ 00:00:09 v #369 > > │     let v86 :
00:00:17 v #677 > > string = "ESFP"
00:00:17 v #678 > > │ 00:00:09 v #370 > > │     let v87 :
00:00:17 v #679 > > string = "ENFP"
00:00:17 v #680 > > │ 00:00:09 v #371 > > │     let v88 :
00:00:17 v #681 > > string = "ENTP"
00:00:17 v #682 > > │ 00:00:09 v #372 > > │     let v89 :
00:00:17 v #683 > > string = "ESTJ"
00:00:17 v #684 > > │ 00:00:09 v #373 > > │     let v90 :
00:00:17 v #685 > > string = "ESFJ"
00:00:17 v #686 > > │ 00:00:09 v #374 > > │     let v91 :
00:00:17 v #687 > > string = "ENFJ"
00:00:17 v #688 > > │ 00:00:09 v #375 > > │     let v92 :
00:00:17 v #689 > > string = "ENTJ"
00:00:17 v #690 > > │ 00:00:09 v #376 > > │     let v93 :
00:00:17 v #691 > > (string []) = [|v77; v78; v79; v80; v81; v82;
00:00:17 v #692 > > │ 00:00:09 v #377 > > v83; v84; v85; v86; v87; v88; v89;
00:00:17 v #693 > > v90; v91; v92|]
00:00:17 v #694 > > │ 00:00:09 v #378 > > │     let v94 :
00:00:17 v #695 > > bool = v74 = v93
00:00:17 v #696 > > │ 00:00:09 v #379 > > │     let v98 :
00:00:17 v #697 > > bool =
00:00:17 v #698 > > │ 00:00:09 v #380 > > │         if v94
00:00:17 v #699 > > then
00:00:17 v #700 > > │ 00:00:09 v #381 > > │             true
00:00:17 v #701 > > │ 00:00:09 v #382 > > │         else
00:00:17 v #702 > > │ 00:00:09 v #383 > > │
00:00:17 v #703 > > method1(v94)
00:00:17 v #704 > > │ 00:00:09 v #384 > > │     let v99 :
00:00:17 v #705 > > string = "__assert_eq'"
00:00:17 v #706 > > │ 00:00:09 v #385 > > │     let v100 :
00:00:17 v #707 > > string = $"{v99} / actual: %A{v74} / expected:
00:00:17 v #708 > > │ 00:00:09 v #386 > > %A{v93}"
00:00:17 v #709 > > │ 00:00:09 v #387 > > │     let v103 :
00:00:17 v #710 > > unit = ()
00:00:17 v #711 > > │ 00:00:09 v #388 > > │     let v104 :
00:00:17 v #712 > > (unit -> unit) = closure0(v100)
00:00:17 v #713 > > │ 00:00:09 v #389 > > │     let v105 :
00:00:17 v #714 > > unit = (fun () -> v104 (); v103) ()
00:00:17 v #715 > > │ 00:00:09 v #390 > > │     let v107 :
00:00:17 v #716 > > bool = v98 = false
00:00:17 v #717 > > │ 00:00:09 v #391 > > │     if v107 then
00:00:17 v #718 > > │ 00:00:09 v #392 > > │
00:00:17 v #719 > > failwith<unit> v100
00:00:17 v #720 > > │ 00:00:09 v #393 > > │ method0()
00:00:17 v #721 > > │ 00:00:09 v #394 > > │
00:00:17 v #722 > > │ 00:00:09 v #395 > > │ __assert_eq'
00:00:17 v #723 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ";
00:00:17 v #724 > > │ 00:00:09 v #396 > > "ISTP"; "ISFP"; "INFP"; "INTP";
00:00:17 v #725 > > "ESTP"; "ESFP";
00:00:17 v #726 > > │ 00:00:09 v #397 > > │   "ENFP"; "ENTP";
00:00:17 v #727 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|]
00:00:17 v #728 > > │ 00:00:09 v #398 > > expected: [|"ISTJ"; "ISFJ"; "INFJ";
00:00:17 v #729 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP";
00:00:17 v #730 > > │ 00:00:09 v #399 > > "ESTP"; "ESFP";
00:00:17 v #731 > > │ 00:00:09 v #400 > > │   "ENFP"; "ENTP";
00:00:17 v #732 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|]
00:00:17 v #733 > > │ 00:00:09 v #401 > > │
00:00:17 v #734 > > │ 00:00:10 v #402 > >
00:00:17 v #735 > > │ 00:00:10 v #403 > > ── fsharp
00:00:17 v #736 > > ──────────────────────────────────────────────────────────────────────
00:00:17 v #737 > > │ 00:00:10 v #404 > > type PhonologicalFeature =
00:00:17 v #738 > > │ 00:00:10 v #405 > >     | VowelFeature of
00:00:17 v #739 > > │ 00:00:10 v #406 > >         height: Height
00:00:17 v #740 > > │ 00:00:10 v #407 > >         * backness: Backness
00:00:17 v #741 > > │ 00:00:10 v #408 > >         * roundedness: Roundedness
00:00:17 v #742 > > │ 00:00:10 v #409 > >         * tone: Option<Tone>
00:00:17 v #743 > > │ 00:00:10 v #410 > >         * stress: Option<Stress>
00:00:17 v #744 > > │ 00:00:10 v #411 > >         * length: Option<Length>
00:00:17 v #745 > > │ 00:00:10 v #412 > >     | ConsonantFeature of
00:00:17 v #746 > > │ 00:00:10 v #413 > >         place: PlaceOfArticulation
00:00:17 v #747 > > │ 00:00:10 v #414 > >         * manner:
00:00:17 v #748 > > MannerOfArticulation
00:00:17 v #749 > > │ 00:00:10 v #415 > >         * voicing: Voicing
00:00:17 v #750 > > │ 00:00:10 v #416 > >         * length: Option<Length>
00:00:17 v #751 > > │ 00:00:10 v #417 > >     | VowelHarmonyFeature
00:00:17 v #752 > > │ 00:00:10 v #418 > >     | PitchAccentFeature
00:00:17 v #753 > > │ 00:00:10 v #419 > >
00:00:17 v #754 > > │ 00:00:10 v #420 > > and Stress = Primary | Secondary
00:00:17 v #755 > > │ 00:00:10 v #421 > > and Length = Long | Short | HalfLong
00:00:17 v #756 > > │ 00:00:10 v #422 > >
00:00:17 v #757 > > │ 00:00:10 v #423 > > and Height =
00:00:17 v #758 > > │ 00:00:10 v #424 > >     | High | NearHigh | HighMid
00:00:17 v #759 > > │ 00:00:10 v #425 > >     | Mid | LowMid | NearLow
00:00:17 v #760 > > │ 00:00:10 v #426 > >     | Low
00:00:17 v #761 > > │ 00:00:10 v #427 > >
00:00:17 v #762 > > │ 00:00:10 v #428 > > and Backness = Front | Central |
00:00:17 v #763 > > Back
00:00:17 v #764 > > │ 00:00:10 v #429 > >
00:00:17 v #765 > > │ 00:00:10 v #430 > > and Roundedness = Rounded |
00:00:17 v #766 > > Unrounded
00:00:17 v #767 > > │ 00:00:10 v #431 > >
00:00:17 v #768 > > │ 00:00:10 v #432 > > and PlaceOfArticulation =
00:00:17 v #769 > > │ 00:00:10 v #433 > >     | Bilabial | Labiodental |
00:00:17 v #770 > > Dental
00:00:17 v #771 > > │ 00:00:10 v #434 > >     | Alveolar | Postalveolar |
00:00:17 v #772 > > Retroflex
00:00:17 v #773 > > │ 00:00:10 v #435 > >     | Palatal | Velar | Uvular
00:00:17 v #774 > > │ 00:00:10 v #436 > >     | Pharyngeal | Epiglottal |
00:00:17 v #775 > > Glottal
00:00:17 v #776 > > │ 00:00:10 v #437 > >
00:00:17 v #777 > > │ 00:00:10 v #438 > > and MannerOfArticulation =
00:00:17 v #778 > > │ 00:00:10 v #439 > >     | Plosive | Nasal | Trill
00:00:17 v #779 > > │ 00:00:10 v #440 > >     | TapOrFlap | Fricative |
00:00:17 v #780 > > LateralFricative
00:00:17 v #781 > > │ 00:00:10 v #441 > >     | Approximant |
00:00:17 v #782 > > LateralApproximant
00:00:17 v #783 > > │ 00:00:10 v #442 > >
00:00:17 v #784 > > │ 00:00:10 v #443 > > and Voicing = Voiced | Voiceless
00:00:17 v #785 > > │ 00:00:10 v #444 > >
00:00:17 v #786 > > │ 00:00:10 v #445 > > and SecondaryArticulation =
00:00:17 v #787 > > │ 00:00:10 v #446 > >     | Labialization | Palatalization
00:00:17 v #788 > > | Velarization
00:00:17 v #789 > > │ 00:00:10 v #447 > >     | Pharyngealization | Aspiration
00:00:17 v #790 > > │ 00:00:10 v #448 > >
00:00:17 v #791 > > │ 00:00:10 v #449 > > and Tone =
00:00:17 v #792 > > │ 00:00:10 v #450 > >     | LevelTone of int
00:00:17 v #793 > > │ 00:00:10 v #451 > >     | ContourTone of int list
00:00:17 v #794 > > │ 00:00:10 v #452 > >
00:00:17 v #795 > > │ 00:00:10 v #453 > > and MorphologicalFeature =
00:00:17 v #796 > > │ 00:00:10 v #454 > >     | RootFeature of string
00:00:17 v #797 > > │ 00:00:10 v #455 > >     | AffixFeature of AffixType *
00:00:17 v #798 > > string
00:00:17 v #799 > > │ 00:00:10 v #456 > >     | IncorporationFeature of string
00:00:17 v #800 > > * MorphologicalFeature
00:00:17 v #801 > > │ 00:00:10 v #457 > >     | NonConcatenativePattern of
00:00:17 v #802 > > string * string
00:00:17 v #803 > > │ 00:00:10 v #458 > >     | AgglutinativeAffixFeature of
00:00:17 v #804 > > AgglutinativeAffixType * string
00:00:17 v #805 > > │ 00:00:10 v #459 > >     | HonorificFeature of
00:00:17 v #806 > > HonorificType * string
00:00:17 v #807 > > │ 00:00:10 v #460 > >
00:00:17 v #808 > > │ 00:00:10 v #461 > > and AgglutinativeAffixType = Suffix
00:00:17 v #809 > > | Prefix
00:00:17 v #810 > > │ 00:00:10 v #462 > >
00:00:17 v #811 > > │ 00:00:10 v #463 > > and HonorificType = VerbHonorific |
00:00:17 v #812 > > NounHonorific
00:00:17 v #813 > > │ 00:00:10 v #464 > >
00:00:17 v #814 > > │ 00:00:10 v #465 > > and AffixType =
00:00:17 v #815 > > │ 00:00:10 v #466 > >     | Prefix | Suffix | Infix
00:00:17 v #816 > > │ 00:00:10 v #467 > >     | Circumfix
00:00:17 v #817 > > │ 00:00:10 v #468 > >
00:00:17 v #818 > > │ 00:00:10 v #469 > > type SyntacticFeature =
00:00:17 v #819 > > │ 00:00:10 v #470 > >     | WordFeature of
00:00:17 v #820 > > MorphologicalFeature list * LexicalCategory
00:00:17 v #821 > > │ 00:00:10 v #471 > >     | PhraseFeature of PhraseType *
00:00:17 v #822 > > SyntacticFeature list
00:00:17 v #823 > > │ 00:00:10 v #472 > >     | GrammaticalRelation of
00:00:17 v #824 > > GrammaticalRelationType * SyntacticFeature list
00:00:17 v #825 > > │ 00:00:10 v #473 > >     | SOVOrderFeature
00:00:17 v #826 > > │ 00:00:10 v #474 > >     | TopicCommentFeature
00:00:17 v #827 > > │ 00:00:10 v #475 > >
00:00:17 v #828 > > │ 00:00:10 v #476 > > and GrammaticalRelationType =
00:00:17 v #829 > > │ 00:00:10 v #477 > >     | Ergative | Absolutive |
00:00:17 v #830 > > Nominative
00:00:17 v #831 > > │ 00:00:10 v #478 > >     | Accusative
00:00:17 v #832 > > │ 00:00:10 v #479 > >
00:00:17 v #833 > > │ 00:00:10 v #480 > > and LexicalCategory =
00:00:17 v #834 > > │ 00:00:10 v #481 > >     | Noun | Verb | Adjective
00:00:17 v #835 > > │ 00:00:10 v #482 > >     | Adverb | Pronoun | Preposition
00:00:17 v #836 > > │ 00:00:10 v #483 > >     | Conjunction | Determiner |
00:00:17 v #837 > > Interjection
00:00:17 v #838 > > │ 00:00:10 v #484 > >
00:00:17 v #839 > > │ 00:00:10 v #485 > > and PhraseType =
00:00:17 v #840 > > │ 00:00:10 v #486 > >     | NP | VP | AP
00:00:17 v #841 > > │ 00:00:10 v #487 > >     | PP | CP
00:00:17 v #842 > > │ 00:00:10 v #488 > >
00:00:17 v #843 > > │ 00:00:10 v #489 > > and SemanticFeature =
00:00:17 v #844 > > │ 00:00:10 v #490 > >     | Meaning of string
00:00:17 v #845 > > │ 00:00:10 v #491 > >     | SemanticRole of
00:00:17 v #846 > > SemanticRoleType * SemanticFeature
00:00:17 v #847 > > │ 00:00:10 v #492 > >
00:00:17 v #848 > > │ 00:00:10 v #493 > > and SemanticRoleType =
00:00:17 v #849 > > │ 00:00:10 v #494 > >     | Agent | Patient | Instrument
00:00:17 v #850 > > │ 00:00:10 v #495 > >     | Location | Time | Cause
00:00:17 v #851 > > │ 00:00:10 v #496 > >
00:00:17 v #852 > > │ 00:00:10 v #497 > > and PragmaticFeature =
00:00:17 v #853 > > │ 00:00:10 v #498 > >     | UseContext of string
00:00:17 v #854 > > │ 00:00:10 v #499 > >     | PolitenessLevel of Politeness
00:00:17 v #855 > > │ 00:00:10 v #500 > >     | SpeechAct of SpeechActType
00:00:17 v #856 > > │ 00:00:10 v #501 > >     | SpeechLevel of SpeechLevelType
00:00:17 v #857 > > │ 00:00:10 v #502 > >
00:00:17 v #858 > > │ 00:00:10 v #503 > > and Politeness = Formal | Informal |
00:00:17 v #859 > > Neutral
00:00:17 v #860 > > │ 00:00:10 v #504 > >
00:00:17 v #861 > > │ 00:00:10 v #505 > > and SpeechActType =
00:00:17 v #862 > > │ 00:00:10 v #506 > >     | Assertive | Directive |
00:00:17 v #863 > > Commissive
00:00:17 v #864 > > │ 00:00:10 v #507 > >     | Expressive | Declarative
00:00:17 v #865 > > │ 00:00:10 v #508 > >
00:00:17 v #866 > > │ 00:00:10 v #509 > > and SpeechLevelType =
00:00:17 v #867 > > │ 00:00:10 v #510 > >     | FormalHigh | FormalLow |
00:00:17 v #868 > > InformalHigh
00:00:17 v #869 > > │ 00:00:10 v #511 > >     | InformalLow | Neutral
00:00:17 v #870 > > │ 00:00:10 v #512 > >
00:00:17 v #871 > > │ 00:00:10 v #513 > > type LinguisticFeature =
00:00:17 v #872 > > │ 00:00:10 v #514 > >     | Phonological of
00:00:17 v #873 > > PhonologicalFeature
00:00:17 v #874 > > │ 00:00:10 v #515 > >     | Morphological of
00:00:17 v #875 > > MorphologicalFeature
00:00:17 v #876 > > │ 00:00:10 v #516 > >     | Syntactic of SyntacticFeature
00:00:17 v #877 > > │ 00:00:10 v #517 > >     | Semantic of SemanticFeature
00:00:17 v #878 > > │ 00:00:10 v #518 > >     | Pragmatic of PragmaticFeature
00:00:17 v #879 > > │ 00:00:10 v #519 > >
00:00:17 v #880 > > │ 00:00:10 v #520 > > type LanguageConstruct =
00:00:17 v #881 > > │ 00:00:10 v #521 > >     | LanguageElement of
00:00:17 v #882 > > LinguisticFeature
00:00:17 v #883 > > │ 00:00:10 v #522 > >     | LanguageStructure of
00:00:17 v #884 > > LanguageConstruct list
00:00:17 v #885 > > │ 00:00:10 v #523 > >     | TranslationElement of
00:00:17 v #886 > > TranslationFeature
00:00:17 v #887 > > │ 00:00:10 v #524 > >
00:00:17 v #888 > > │ 00:00:10 v #525 > > and TranslationFeature =
00:00:17 v #889 > > │ 00:00:10 v #526 > >     | LinkedPhonological of
00:00:17 v #890 > > PhonologicalFeature * PhonologicalFeature
00:00:17 v #891 > > │ 00:00:10 v #527 > >     | LinkedMorphological of
00:00:17 v #892 > > MorphologicalFeature * MorphologicalFeature
00:00:17 v #893 > > │ 00:00:10 v #528 > >     | LinkedSyntactic of
00:00:17 v #894 > > SyntacticFeature * SyntacticFeature
00:00:17 v #895 > > │ 00:00:10 v #529 > >     | LinkedSemantic of
00:00:17 v #896 > > SemanticFeature * SemanticFeature
00:00:17 v #897 > > │ 00:00:10 v #530 > >
00:00:17 v #898 > > │ 00:00:10 v #531 > > type Discourse = DiscourseUnit of
00:00:17 v #899 > > LanguageConstruct list
00:00:17 v #900 > > │ 00:00:10 v #532 > >
00:00:17 v #901 > > │ 00:00:10 v #533 > > type LanguageModel =
00:00:17 v #902 > > │ 00:00:10 v #534 > >     | Model of discourse: Discourse
00:00:17 v #903 > > │ 00:00:11 v #535 > >
00:00:17 v #904 > > │ 00:00:11 v #536 > > ── fsharp
00:00:17 v #905 > > ──────────────────────────────────────────────────────────────────────
00:00:17 v #906 > > │ 00:00:11 v #537 > > let testEnglish =
00:00:17 v #907 > > │ 00:00:11 v #538 > >     Model(
00:00:17 v #908 > > │ 00:00:11 v #539 > >         DiscourseUnit [[
00:00:17 v #909 > > │ 00:00:11 v #540 > >             LanguageElement
00:00:17 v #910 > > (Phonological (ConsonantFeature (Alveolar, Nasal,
00:00:17 v #911 > > │ 00:00:11 v #541 > > Voiced, Some(HalfLong))));
00:00:17 v #912 > > │ 00:00:11 v #542 > >             LanguageElement
00:00:17 v #913 > > (Phonological (VowelFeature (High, Front, Unrounded,
00:00:17 v #914 > > │ 00:00:11 v #543 > > Some(LevelTone 1), Some(Primary),
00:00:17 v #915 > > Some(Short))));
00:00:17 v #916 > > │ 00:00:11 v #544 > >             LanguageElement
00:00:17 v #917 > > (Phonological (VowelFeature (Low, Front, Unrounded,
00:00:17 v #918 > > │ 00:00:11 v #545 > > Some(LevelTone 2), Some(Secondary),
00:00:17 v #919 > > Some(Long))));
00:00:17 v #920 > > │ 00:00:11 v #546 > >             LanguageElement
00:00:17 v #921 > > (Phonological (ConsonantFeature (Velar, Plosive,
00:00:17 v #922 > > │ 00:00:11 v #547 > > Voiceless, Some(HalfLong))));
00:00:17 v #923 > > │ 00:00:11 v #548 > >             LanguageElement
00:00:17 v #924 > > (Morphological (RootFeature "I"));
00:00:17 v #925 > > │ 00:00:11 v #549 > >             LanguageElement
00:00:17 v #926 > > (Morphological (RootFeature "see"));
00:00:17 v #927 > > │ 00:00:11 v #550 > >             LanguageElement
00:00:17 v #928 > > (Morphological (RootFeature "a"));
00:00:17 v #929 > > │ 00:00:11 v #551 > >             LanguageElement
00:00:17 v #930 > > (Morphological (RootFeature "cat"));
00:00:17 v #931 > > │ 00:00:11 v #552 > >             LanguageElement
00:00:17 v #932 > > (Syntactic (PhraseFeature (NP, [[WordFeature
00:00:17 v #933 > > │ 00:00:11 v #553 > > ([[RootFeature "I"]], Pronoun)]])));
00:00:17 v #934 > > │ 00:00:11 v #554 > >             LanguageElement
00:00:17 v #935 > > (Syntactic (PhraseFeature (VP, [[WordFeature
00:00:17 v #936 > > │ 00:00:11 v #555 > > ([[RootFeature "see"]], Verb)]])));
00:00:17 v #937 > > │ 00:00:11 v #556 > >             LanguageElement
00:00:17 v #938 > > (Syntactic (PhraseFeature (NP, [[WordFeature
00:00:17 v #939 > > │ 00:00:11 v #557 > > ([[RootFeature "a"; RootFeature
00:00:17 v #940 > > "cat"]], Noun)]])));
00:00:17 v #941 > > │ 00:00:11 v #558 > >             LanguageElement
00:00:17 v #942 > > (Semantic (Meaning "Perception act of a feline by
00:00:17 v #943 > > │ 00:00:11 v #559 > > the speaker"));
00:00:17 v #944 > > │ 00:00:11 v #560 > >             LanguageElement
00:00:17 v #945 > > (Pragmatic (UseContext "Statement of an action being
00:00:17 v #946 > > │ 00:00:11 v #561 > > observed"))
00:00:17 v #947 > > │ 00:00:11 v #562 > >         ]]
00:00:17 v #948 > > │ 00:00:11 v #563 > >     )
00:00:17 v #949 > > │ 00:00:11 v #564 > >
00:00:17 v #950 > > │ 00:00:11 v #565 > > let testPortuguese =
00:00:17 v #951 > > │ 00:00:11 v #566 > >     Model(
00:00:17 v #952 > > │ 00:00:11 v #567 > >         DiscourseUnit [[
00:00:17 v #953 > > │ 00:00:11 v #568 > >             LanguageElement
00:00:17 v #954 > > (Phonological (VowelFeature (High, Front, Unrounded,
00:00:17 v #955 > > │ 00:00:11 v #569 > > Some(LevelTone 1), Some(Primary),
00:00:17 v #956 > > Some(Short))));
00:00:17 v #957 > > │ 00:00:11 v #570 > >             LanguageElement
00:00:17 v #958 > > (Phonological (VowelFeature (Low, Front, Unrounded,
00:00:17 v #959 > > │ 00:00:11 v #571 > > Some(LevelTone 2), Some(Secondary),
00:00:17 v #960 > > Some(Long))));
00:00:17 v #961 > > │ 00:00:11 v #572 > >             LanguageElement
00:00:17 v #962 > > (Phonological (VowelFeature (Mid, Back, Rounded,
00:00:17 v #963 > > │ 00:00:11 v #573 > > Some(LevelTone 3), Some(Primary),
00:00:17 v #964 > > Some(Short))));
00:00:17 v #965 > > │ 00:00:11 v #574 > >             LanguageElement
00:00:17 v #966 > > (Phonological (ConsonantFeature (Velar, Plosive,
00:00:17 v #967 > > │ 00:00:11 v #575 > > Voiceless, Some(HalfLong))));
00:00:17 v #968 > > │ 00:00:11 v #576 > >             LanguageElement
00:00:17 v #969 > > (Morphological (RootFeature "Eu"));
00:00:17 v #970 > > │ 00:00:11 v #577 > >             LanguageElement
00:00:17 v #971 > > (Morphological (RootFeature "ver" |> ignore;
00:00:17 v #972 > > │ 00:00:11 v #578 > > AffixFeature (Suffix, "o")));
00:00:17 v #973 > > │ 00:00:11 v #579 > >             LanguageElement
00:00:17 v #974 > > (Morphological (RootFeature "um"));
00:00:17 v #975 > > │ 00:00:11 v #580 > >             LanguageElement
00:00:17 v #976 > > (Morphological (RootFeature "gato"));
00:00:17 v #977 > > │ 00:00:11 v #581 > >             LanguageElement
00:00:17 v #978 > > (Syntactic (PhraseFeature (NP, [[WordFeature
00:00:17 v #979 > > │ 00:00:11 v #582 > > ([[RootFeature "Eu"]],
00:00:17 v #980 > > Pronoun)]])));
00:00:17 v #981 > > │ 00:00:11 v #583 > >             LanguageElement
00:00:17 v #982 > > (Syntactic (PhraseFeature (VP, [[WordFeature
00:00:17 v #983 > > │ 00:00:11 v #584 > > ([[RootFeature "vejo"]], Verb)]])));
00:00:17 v #984 > > │ 00:00:11 v #585 > >             LanguageElement
00:00:17 v #985 > > (Syntactic (PhraseFeature (NP, [[WordFeature
00:00:17 v #986 > > │ 00:00:11 v #586 > > ([[RootFeature "um"; RootFeature
00:00:17 v #987 > > "gato"]], Noun)]])));
00:00:17 v #988 > > │ 00:00:11 v #587 > >             LanguageElement
00:00:17 v #989 > > (Semantic (Meaning "Ação de percepção de um felino
00:00:17 v #990 > > │ 00:00:11 v #588 > > pelo falante"));
00:00:17 v #991 > > │ 00:00:11 v #589 > >             LanguageElement
00:00:17 v #992 > > (Pragmatic (UseContext "Declaração de uma ação sendo
00:00:17 v #993 > > │ 00:00:11 v #590 > > observada"))
00:00:17 v #994 > > │ 00:00:11 v #591 > >         ]]
00:00:17 v #995 > > │ 00:00:11 v #592 > >     )
00:00:17 v #996 > > │ 00:00:11 v #593 > >
00:00:17 v #997 > > │ 00:00:11 v #594 > > let testKorean =
00:00:17 v #998 > > │ 00:00:11 v #595 > >     Model(
00:00:17 v #999 > > │ 00:00:11 v #596 > >         DiscourseUnit [[
00:00:17 v #1000 > > │ 00:00:11 v #597 > >             LanguageElement
00:00:17 v #1001 > > (Phonological (ConsonantFeature (Alveolar, Nasal,
00:00:17 v #1002 > > │ 00:00:11 v #598 > > Voiced, Some(Short))));
00:00:17 v #1003 > > │ 00:00:11 v #599 > >             LanguageElement
00:00:17 v #1004 > > (Phonological (VowelFeature (High, Back, Rounded,
00:00:17 v #1005 > > │ 00:00:11 v #600 > > None, None, Some(Short))));
00:00:17 v #1006 > > │ 00:00:11 v #601 > >             LanguageElement
00:00:17 v #1007 > > (Phonological (VowelFeature (Mid, Front, Unrounded,
00:00:17 v #1008 > > │ 00:00:11 v #602 > > None, None, Some(Long))));
00:00:17 v #1009 > > │ 00:00:11 v #603 > >             LanguageElement
00:00:17 v #1010 > > (Phonological (ConsonantFeature (Bilabial, Plosive,
00:00:17 v #1011 > > │ 00:00:11 v #604 > > Voiceless, Some(Short))));
00:00:17 v #1012 > > │ 00:00:11 v #605 > >             LanguageElement
00:00:17 v #1013 > > (Morphological (RootFeature "나"));
00:00:17 v #1014 > > │ 00:00:11 v #606 > >             LanguageElement
00:00:17 v #1015 > > (Morphological (RootFeature "보다"));
00:00:17 v #1016 > > │ 00:00:11 v #607 > >             LanguageElement
00:00:17 v #1017 > > (Morphological (AffixFeature (Suffix, "아")));
00:00:17 v #1018 > > │ 00:00:11 v #608 > >             LanguageElement
00:00:17 v #1019 > > (Morphological (RootFeature "고양이"));
00:00:17 v #1020 > > │ 00:00:11 v #609 > >             LanguageElement
00:00:17 v #1021 > > (Syntactic (PhraseFeature (NP, [[WordFeature
00:00:17 v #1022 > > │ 00:00:11 v #610 > > ([[RootFeature "나"]],
00:00:17 v #1023 > > Pronoun)]])));
00:00:17 v #1024 > > │ 00:00:11 v #611 > >             LanguageElement
00:00:17 v #1025 > > (Syntactic (PhraseFeature (VP, [[WordFeature
00:00:17 v #1026 > > │ 00:00:11 v #612 > > ([[RootFeature "보다"; AffixFeature
00:00:17 v #1027 > > (Suffix, "아")]], Verb)]])));
00:00:17 v #1028 > > │ 00:00:11 v #613 > >             LanguageElement
00:00:17 v #1029 > > (Syntactic (PhraseFeature (NP, [[WordFeature
00:00:17 v #1030 > > │ 00:00:11 v #614 > > ([[RootFeature "고양이"]],
00:00:17 v #1031 > > Noun)]])));
00:00:17 v #1032 > > │ 00:00:11 v #615 > >             LanguageElement
00:00:17 v #1033 > > (Semantic (Meaning "화자에 의한 고양이의 관찰
00:00:17 v #1034 > > │ 00:00:11 v #616 > > 행위"));
00:00:17 v #1035 > > │ 00:00:11 v #617 > >             LanguageElement
00:00:17 v #1036 > > (Pragmatic (UseContext "관찰되고 있는 행동의 진술"))
00:00:17 v #1037 > > │ 00:00:11 v #618 > >         ]]
00:00:17 v #1038 > > │ 00:00:11 v #619 > >     )
00:00:17 v #1039 > > │ 00:00:11 v #620 > >
00:00:17 v #1040 > > │ 00:00:11 v #621 > > ── markdown
00:00:17 v #1041 > > ────────────────────────────────────────────────────────────────────
00:00:17 v #1042 > > │ 00:00:11 v #622 > > │ ## main
00:00:17 v #1043 > > │ 00:00:11 v #623 > >
00:00:17 v #1044 > > │ 00:00:11 v #624 > > ── spiral
00:00:17 v #1045 > > ──────────────────────────────────────────────────────────────────────
00:00:17 v #1046 > > │ 00:00:11 v #625 > > inl main (_args : array_base string)
00:00:17 v #1047 > > =
00:00:17 v #1048 > > │ 00:00:11 v #626 > >     0i32
00:00:17 v #1049 > > │ 00:00:11 v #627 > >
00:00:17 v #1050 > > │ 00:00:11 v #628 > > inl main () =
00:00:17 v #1051 > > │ 00:00:11 v #629 > >     $'let main args = !main args' :
00:00:17 v #1052 > > ()
00:00:17 v #1053 > > │ 00:00:11 v #630 > >
00:00:17 v #1054 > > │ 00:00:11 v #631 > > ── spiral
00:00:17 v #1055 > > ──────────────────────────────────────────────────────────────────────
00:00:17 v #1056 > > │ 00:00:11 v #632 > > inl app () =
00:00:17 v #1057 > > │ 00:00:11 v #633 > >     "test" |> console.write_line
00:00:17 v #1058 > > │ 00:00:11 v #634 > >     0i32
00:00:17 v #1059 > > │ 00:00:11 v #635 > >
00:00:17 v #1060 > > │ 00:00:11 v #636 > > inl main () =
00:00:17 v #1061 > > │ 00:00:11 v #637 > >     print_static "<test>"
00:00:17 v #1062 > > │ 00:00:11 v #638 > >
00:00:17 v #1063 > > │ 00:00:11 v #639 > >     app
00:00:17 v #1064 > > │ 00:00:11 v #640 > >     |> dyn
00:00:17 v #1065 > > │ 00:00:11 v #641 > >     |> ignore
00:00:17 v #1066 > > │ 00:00:11 v #642 > >
00:00:17 v #1067 > > │ 00:00:11 v #643 > >     print_static "</test>"
00:00:17 v #1068 > > │ 00:00:12 v #644 > 00:00:11 v #3
00:00:17 v #1069 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length =
00:00:17 v #1070 > > 27199 }
00:00:17 v #1071 > > │ 00:00:12 v #645 > 00:00:11 d #4
00:00:17 v #1072 > > runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert",
00:00:17 v #1073 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb",
00:00:17 v #1074 > > "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter
00:00:17 v #1075 > > nbconvert
00:00:17 v #1076 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb" --to
00:00:17 v #1077 > > html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables
00:00:17 v #1078 > > = Array(MutCell([])); on_line = None; stdin = None; trace = true;
00:00:17 v #1079 > > working_directory = None } }
00:00:17 v #1080 > > │ 00:00:12 v #646 > 00:00:12 v #5 ! [NbConvertApp]
00:00:17 v #1081 > > Converting notebook
00:00:17 v #1082 > > /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb to html
00:00:17 v #1083 > > │ 00:00:12 v #647 > 00:00:12 v #6 !
00:00:17 v #1084 > > /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__i
00:00:17 v #1085 > > nit__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will
00:00:17 v #1086 > > become a hard error in future nbformat versions. You may want to use
00:00:17 v #1087 > > `normalize()` on your notebooks before validations (available since nbformat
00:00:17 v #1088 > > 5.1.4). Previous versions of nbformat are fixing this issue transparently, and
00:00:17 v #1089 > > will stop doing so in the future.
00:00:17 v #1090 > > │ 00:00:12 v #648 > 00:00:12 v #7 !   validate(nb)
00:00:17 v #1091 > > │ 00:00:13 v #649 > 00:00:12 v #8 !
00:00:17 v #1092 > > /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/fi
00:00:17 v #1093 > > lters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on
00:00:17 v #1094 > > Python 3
00:00:17 v #1095 > > │ 00:00:13 v #650 > 00:00:12 v #9 !   return
00:00:17 v #1096 > > _pygments_highlight(
00:00:17 v #1097 > > │ 00:00:13 v #651 > 00:00:12 v #10 ! [NbConvertApp]
00:00:17 v #1098 > > Writing 332732 bytes to
00:00:17 v #1099 > > /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.html
00:00:17 v #1100 > > │ 00:00:13 v #652 > 00:00:12 v #11
00:00:17 v #1101 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 914
00:00:17 v #1102 > > }
00:00:17 v #1103 > > │ 00:00:13 v #653 > 00:00:12 d #12 spiral.run / dib
00:00:17 v #1104 > > / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 914 }
00:00:17 v #1105 > > │ 00:00:13 v #654 > 00:00:12 d #13
00:00:17 v #1106 > > runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter
00:00:17 v #1107 > > = 1; $path =
00:00:17 v #1108 > > '/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.html';
00:00:17 v #1109 > > (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', {
00:00:17 v #1110 > > $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command =
00:00:17 v #1111 > > pwsh -c "$counter = 1; $path =
00:00:17 v #1112 > > '/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.html';
00:00:17 v #1113 > > (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', {
00:00:17 v #1114 > > $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token =
00:00:17 v #1115 > > None; environment_variables = Array(MutCell([])); on_line = None; stdin = None;
00:00:17 v #1116 > > trace = true; working_directory = None } }
00:00:17 v #1117 > > │ 00:00:13 v #655 > 00:00:13 v #14
00:00:17 v #1118 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:17 v #1119 > > │ 00:00:13 v #656 > 00:00:13 d #15 spiral.run / dib
00:00:17 v #1120 > > / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:17 v #1121 > > │ 00:00:13 v #657 > 00:00:13 d #16 spiral.run / dib
00:00:17 v #1122 > > / { exit_code = 0; result_length = 28172 }
00:00:17 v #1123 > > │ 00:00:13 d #658 runtime.execute_with_options_async / {
00:00:17 v #1124 > > exit_code = 0; output_length = 32177 }
00:00:17 v #1125 > > │ 00:00:13 d #1 main / executeCommand / exitCode: 0
00:00:17 v #1126 > > command: ../../../../deps/spiral/workspace/target/release/spiral dib --path
00:00:17 v #1127 > > test.dib --retries 3
00:00:17 v #1128 > > │
00:00:17 v #1129 > >
00:00:17 v #1130 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 v #1131 > > │ ### parse the .dib file into .spi format with dibparser
00:00:17 v #1132 > >
00:00:17 v #1133 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:17 v #1134 > > { . ../../../../apps/parser/dist/DibParser$(_exe) test.dib spi } | Invoke-Block
00:00:17 v #1135 > >
00:00:17 v #1136 > > ── [ 399.22ms - stdout ] ───────────────────────────────────────────────────────
00:00:17 v #1137 > > │ 00:00:00 d #1 writeDibCode / output: Spi / path:
00:00:17 v #1138 > > test.dib
00:00:17 v #1139 > > │ 00:00:00 d #2 parseDibCode / output: Spi / file:
00:00:17 v #1140 > > test.dib
00:00:17 v #1141 > > │
00:00:17 v #1142 > >
00:00:17 v #1143 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 v #1144 > > │ ### build .fsx file from .spi using supervisor
00:00:17 v #1145 > >
00:00:17 v #1146 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:17 v #1147 > > { . ../../../../apps/spiral/dist/Supervisor$(_exe) --build-file test.spi
00:00:17 v #1148 > > test.fsx } | Invoke-Block
00:00:18 v #1149 > <test>
00:00:18 v #1150 > </test>
00:00:18 v #1151 > >
00:00:18 v #1152 > > ── [ 1.07s - stdout ] ──────────────────────────────────────────────────────────
00:00:18 v #1153 > > │ 00:00:00 v #1 networking.test_port_open / { port =
00:00:18 v #1154 > > 13806; ex = System.AggregateException: One or more errors occurred. (Connection
00:00:18 v #1155 > > refused) }
00:00:18 v #1156 > > │ 00:00:00 v #2 networking.test_port_open / { port =
00:00:18 v #1157 > > 13806; ex = System.AggregateException: One or more errors occurred. (Connection
00:00:18 v #1158 > > refused) }
00:00:18 v #1159 > > │ 00:00:00 d #1 Supervisor.buildFile / takeWhileInclusive
00:00:18 v #1160 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:
00:00:18 v #1161 > > │
00:00:18 v #1162 > > │ 00:00:00 d #2 Supervisor.buildFile / AsyncSeq.scan
00:00:18 v #1163 > > path: test.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry:
00:00:18 v #1164 > > 0 / error:  / outputContent:
00:00:18 v #1165 > > │
00:00:18 v #1166 > > │ 00:00:00 d #3 Supervisor.buildFile / takeWhileInclusive
00:00:18 v #1167 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:
00:00:18 v #1168 > > │
00:00:18 v #1169 > > │ 00:00:00 v #4 Supervisor.sendJson / port: 13805 / json:
00:00:18 v #1170 > > {"FileOpen":{"spiText":"/// # test (Polyglot)\n\n/// ## main\ninl main (_args :
00:00:18 v #1171 > > array_base string)
00:00:18 v #1172 > > =...t\u003E\u0022\n","uri":"file:///home/runner/work/polyglot/polyglot/apps/spir
00:00:18 v #1173 > > al/temp/test/test.spi"}} / result:
00:00:18 v #1174 > > │ 00:00:00 v #5 Supervisor.sendJson / port: 13805 / json:
00:00:18 v #1175 > > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl
00:00:18 v #1176 > > ot/apps/spiral/temp/test/test.spi"}} / result:
00:00:18 v #1177 > > │ 00:00:00 d #6 Supervisor.buildFile / AsyncSeq.scan
00:00:18 v #1178 > > path: test.spi / errors: [] / outputContentResult:  / typeErrorCount: 0 / retry:
00:00:18 v #1179 > > 0 / error:  / outputContent:
00:00:18 v #1180 > > │ let rec closure1 () () : unit =
00:00:18 v #1181 > > │     let v0 : (string -> unit) = System.Console.WriteLine
00:00:18 v #1182 > > │     let v1 : string = "test"
00:00:18 v #1183 > > │     v0 v1
00:00:18 v #1184 > > │ and closure0 () () : int32 =
00:00:18 v #1185 > > │     let v0 : unit = ()
00:00:18 v #1186 > > │     let v1 : (unit -> unit) = closure1()
00:00:18 v #1187 > > │     let v2 : unit = (fun () -> v1 (); v0) ()
00:00:18 v #1188 > > │     0
00:00:18 v #1189 > > │ let v0 : (unit -> int32) = closure0()
00:00:18 v #1190 > > │ ()
00:00:18 v #1191 > > │
00:00:18 v #1192 > > │ 00:00:00 d #7 Supervisor.buildFile / takeWhileInclusive
00:00:18 v #1193 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:
00:00:18 v #1194 > > │ let rec closure1 () () : unit =
00:00:18 v #1195 > > │     let v0 : (string -> unit) = System.Console.WriteLine
00:00:18 v #1196 > > │     let v1 : string = "test"
00:00:18 v #1197 > > │     v0 v1
00:00:18 v #1198 > > │ and closure0 () () : int32 =
00:00:18 v #1199 > > │     let v0 : unit = ()
00:00:18 v #1200 > > │     let v1 : (unit -> unit) = closure1()
00:00:18 v #1201 > > │     let v2 : unit = (fun () -> v1 (); v0) ()
00:00:18 v #1202 > > │     0
00:00:18 v #1203 > > │ let v0 : (unit -> int32) = closure0()
00:00:18 v #1204 > > │ ()
00:00:18 v #1205 > > │
00:00:18 v #1206 > > │ 00:00:00 d #8 FileSystem.watchWithFilter / Disposing
00:00:18 v #1207 > > watch stream / filter: FileName, LastWrite
00:00:18 v #1208 > > │
00:00:18 v #1209 > >
00:00:18 v #1210 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 v #1211 > > │ ## compile and format the project
00:00:18 v #1212 > >
00:00:18 v #1213 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 v #1214 > > │ ### compile project with fable targeting optimized rust
00:00:18 v #1215 > >
00:00:18 v #1216 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:18 v #1217 > > dotnet fable --optimize --lang rs --extension .rs
00:00:23 v #1218 > >
00:00:23 v #1219 > > ── [ 4.62s - stdout ] ──────────────────────────────────────────────────────────
00:00:23 v #1220 > > │ Fable 5.0.0-alpha.7: F# to Rust compiler (status: alpha)
00:00:23 v #1221 > > │ 
00:00:23 v #1222 > > │ Thanks to the contributor! @Nhowka
00:00:23 v #1223 > > │ Stand with Ukraine! https://standwithukraine.com.ua
00:00:23 v #1224 > > │
00:00:23 v #1225 > > │ Parsing test.fsproj...
00:00:23 v #1226 > > │ Project and references (1 source files) parsed in 2421ms
00:00:23 v #1227 > > │
00:00:23 v #1228 > > │ Started Fable compilation...
00:00:23 v #1229 > > │ 
00:00:23 v #1230 > > │ Fable compilation finished in 1107ms
00:00:23 v #1231 > > │
00:00:23 v #1232 > > │ ./test.fsx(11,0): (11,2) warning FABLE: For Rust, support
00:00:23 v #1233 > > for F# static and module do bindings is disabled by default. It can be enabled
00:00:23 v #1234 > > with the 'static_do_bindings' feature. Use at your own risk!
00:00:23 v #1235 > > │
00:00:23 v #1236 > >
00:00:23 v #1237 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #1238 > > │ ### fix formatting issues in the .rs file using regex and
00:00:23 v #1239 > > set-content
00:00:23 v #1240 > >
00:00:23 v #1241 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:23 v #1242 > > (Get-Content test.rs) `
00:00:23 v #1243 > >     -replace [[regex]]::Escape("),);"), "));" `
00:00:23 v #1244 > >     | FixRust `
00:00:23 v #1245 > > | Set-Content test.rs
00:00:23 v #1246 > >
00:00:23 v #1247 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #1248 > > │ ### format the rust code using cargo fmt
00:00:23 v #1249 > >
00:00:23 v #1250 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:23 v #1251 > > cargo fmt --
00:00:23 v #1252 > >
00:00:23 v #1253 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #1254 > > │ ## build and test the project
00:00:23 v #1255 > >
00:00:23 v #1256 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 v #1257 > > │ ### build the project in release mode using nightly rust
00:00:23 v #1258 > > compiler
00:00:23 v #1259 > >
00:00:23 v #1260 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:23 v #1261 > > cargo build --release
00:00:34 v #1262 > >
00:00:34 v #1263 > > ── [ 11.20s - stdout ] ─────────────────────────────────────────────────────────
00:00:34 v #1264 > > │    Compiling byteorder v1.5.0
00:00:34 v #1265 > > │    Compiling syn v2.0.90
00:00:34 v #1266 > > │    Compiling getrandom v0.2.15
00:00:34 v #1267 > > │    Compiling linux-raw-sys v0.4.14
00:00:34 v #1268 > > │    Compiling rand_core v0.6.4
00:00:34 v #1269 > > │    Compiling num-traits v0.2.19
00:00:34 v #1270 > > │    Compiling once_cell v1.20.2
00:00:34 v #1271 > > │    Compiling rustix v0.38.42
00:00:34 v #1272 > > │    Compiling libm v0.2.11
00:00:34 v #1273 > > │    Compiling wait-timeout v0.2.0
00:00:34 v #1274 > > │    Compiling bit-vec v0.6.3
00:00:34 v #1275 > > │    Compiling quick-error v1.2.3
00:00:34 v #1276 > > │    Compiling bit-set v0.5.3
00:00:34 v #1277 > > │    Compiling rand_xorshift v0.3.0
00:00:34 v #1278 > > │    Compiling memchr v2.7.4
00:00:34 v #1279 > > │    Compiling unarray v0.1.4
00:00:34 v #1280 > > │    Compiling nom v7.1.3
00:00:34 v #1281 > > │    Compiling tempfile v3.14.0
00:00:34 v #1282 > > │    Compiling rusty-fork v0.3.0
00:00:34 v #1283 > > │    Compiling zerocopy-derive v0.7.35
00:00:34 v #1284 > > │    Compiling thiserror-impl v1.0.69
00:00:34 v #1285 > > │    Compiling fable_library_rust v0.1.0
00:00:34 v #1286 > > (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-
00:00:34 v #1287 > > rust)
00:00:34 v #1288 > > │    Compiling zerocopy v0.7.35
00:00:34 v #1289 > > │    Compiling ppv-lite86 v0.2.20
00:00:34 v #1290 > > │    Compiling thiserror v1.0.69
00:00:34 v #1291 > > │    Compiling rand_chacha v0.3.1
00:00:34 v #1292 > > │    Compiling rand v0.8.5
00:00:34 v #1293 > > │    Compiling proptest v1.5.0
00:00:34 v #1294 > > │    Compiling spiral_temp_test v0.0.1
00:00:34 v #1295 > > (/home/runner/work/polyglot/polyglot/apps/spiral/temp/test)
00:00:34 v #1296 > > │     Finished `release` profile [optimized]
00:00:34 v #1297 > > target(s) in 11.14s
00:00:34 v #1298 > > │
00:00:34 v #1299 > >
00:00:34 v #1300 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:34 v #1301 > > │ ### run release tests with output enabled
00:00:34 v #1302 > >
00:00:34 v #1303 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:34 v #1304 > > { cargo test --release -- --show-output } | Invoke-Block
00:00:50 v #1305 > >
00:00:50 v #1306 > > ── [ 15.78s - stdout ] ─────────────────────────────────────────────────────────
00:00:50 v #1307 > > │    Compiling bitflags v2.6.0
00:00:50 v #1308 > > │    Compiling linux-raw-sys v0.4.14
00:00:50 v #1309 > > │    Compiling zerocopy v0.7.35
00:00:50 v #1310 > > │    Compiling fastrand v2.3.0
00:00:50 v #1311 > > │    Compiling once_cell v1.20.2
00:00:50 v #1312 > > │    Compiling wait-timeout v0.2.0
00:00:50 v #1313 > > │    Compiling bit-vec v0.6.3
00:00:50 v #1314 > > │    Compiling rustix v0.38.42
00:00:50 v #1315 > > │    Compiling fnv v1.0.7
00:00:50 v #1316 > > │    Compiling quick-error v1.2.3
00:00:50 v #1317 > > │    Compiling bit-set v0.5.3
00:00:50 v #1318 > > │    Compiling ppv-lite86 v0.2.20
00:00:50 v #1319 > > │    Compiling num-traits v0.2.19
00:00:50 v #1320 > > │    Compiling rand_xorshift v0.3.0
00:00:50 v #1321 > > │    Compiling unarray v0.1.4
00:00:50 v #1322 > > │    Compiling lazy_static v1.5.0
00:00:50 v #1323 > > │    Compiling memchr v2.7.4
00:00:50 v #1324 > > │    Compiling rand_chacha v0.3.1
00:00:50 v #1325 > > │    Compiling rand v0.8.5
00:00:50 v #1326 > > │    Compiling minimal-lexical v0.2.1
00:00:50 v #1327 > > │    Compiling fable_library_rust v0.1.0
00:00:50 v #1328 > > (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-
00:00:50 v #1329 > > rust)
00:00:50 v #1330 > > │    Compiling nom v7.1.3
00:00:50 v #1331 > > │    Compiling thiserror v1.0.69
00:00:50 v #1332 > > │    Compiling tempfile v3.14.0
00:00:50 v #1333 > > │    Compiling rusty-fork v0.3.0
00:00:50 v #1334 > > │    Compiling proptest v1.5.0
00:00:50 v #1335 > > │    Compiling spiral_temp_test v0.0.1
00:00:50 v #1336 > > (/home/runner/work/polyglot/polyglot/apps/spiral/temp/test)
00:00:50 v #1337 > > │     Finished `release` profile [optimized]
00:00:50 v #1338 > > target(s) in 15.63s
00:00:50 v #1339 > > │      Running unittests main.rs
00:00:50 v #1340 > > (/home/runner/work/polyglot/polyglot/workspace/target/release/deps/spiral_temp_t
00:00:50 v #1341 > > est-87f487a4cc8a01e4)
00:00:50 v #1342 > > │
00:00:50 v #1343 > > │ running 3 tests
00:00:50 v #1344 > > │ test test_parse_number ... ok
00:00:50 v #1345 > > │ test prop_parse_format_idempotent ... ok
00:00:50 v #1346 > > │ test
00:00:50 v #1347 > > adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... ok
00:00:50 v #1348 > > │
00:00:50 v #1349 > > │ successes:
00:00:50 v #1350 > > │
00:00:50 v #1351 > > │ ---- prop_parse_format_idempotent stdout ----
00:00:50 v #1352 > > │ input=Identifier("sNp00")
00:00:50 v #1353 > > │ input=Operator("(")
00:00:50 v #1354 > > │ input=Comment("*'")
00:00:50 v #1355 > > │ input=StringLiteral("u")
00:00:50 v #1356 > > │ input=Operator("/")
00:00:50 v #1357 > > │ input=Integer(7987442668371011830)
00:00:50 v #1358 > > │ input=Operator("=")
00:00:50 v #1359 > > │ input=Integer(-8415468697356663264)
00:00:50 v #1360 > > │ input=Integer(-5286460089712970944)
00:00:50 v #1361 > > │ input=StringLiteral("`BE/&p-.?;N$}$E:O)=W%65(")
00:00:50 v #1362 > > │ input=StringLiteral("sIm~`Vl=Mtx[6q$]")
00:00:50 v #1363 > > │ input=StringLiteral("nv$$+d5+Q!?;]&=eKx%N//&^.b'%&")
00:00:50 v #1364 > > │ input=Comment("&\"@Q%?'\\~MW$?&cX?@:\\+\"")
00:00:50 v #1365 > > │ input=StringLiteral("A^^aK9<#_=Mlp?")
00:00:50 v #1366 > > │ input=Integer(-2646517542013292451)
00:00:50 v #1367 > > │ input=Identifier("ekon2Qrq9j5tUa")
00:00:50 v #1368 > > │ input=StringLiteral(";oo)hKN|*m?*.eg=f.<8<")
00:00:50 v #1369 > > │ input=Comment("G&6{f#=")
00:00:50 v #1370 > > │ input=Integer(-2402576030473036690)
00:00:50 v #1371 > > │ input=Integer(-6615055747262667518)
00:00:50 v #1372 > > │ input=StringLiteral(" &&aPwKc")
00:00:50 v #1373 > > │ input=Integer(-4009792755068244698)
00:00:50 v #1374 > > │ input=Identifier("Oi7FUQb9B9Z2")
00:00:50 v #1375 > > │ input=Comment("u\"M")
00:00:50 v #1376 > > │ input=StringLiteral("yFY:=Iocm$&azN")
00:00:50 v #1377 > > │ input=Integer(-898381946231235159)
00:00:50 v #1378 > > │ input=Comment("oi=Pp\"@`.WZNr3.'*&(Z4jV`&K%")
00:00:50 v #1379 > > │ input=Comment(",?CP")
00:00:50 v #1380 > > │ input=Comment("_4")
00:00:50 v #1381 > > │ input=Integer(8901291374222859695)
00:00:50 v #1382 > > │ input=Operator("+")
00:00:50 v #1383 > > │ input=Integer(325292544483772038)
00:00:50 v #1384 > > │ input=Identifier("zYyUeomsS5ntsUxx4534Bprl3y52")
00:00:50 v #1385 > > │ input=Integer(-8502281430216586471)
00:00:50 v #1386 > > │ input=Identifier("G017l9DZ8")
00:00:50 v #1387 > > │ input=Operator("+")
00:00:50 v #1388 > > │ input=Integer(8002166900752373736)
00:00:50 v #1389 > > │ input=Comment("Y$'{n)\"s\\/yl`%q$5\\$'4v5_")
00:00:50 v #1390 > > │ input=Identifier("TV53E33M5zqGm1mCmWlr1mgT6934PK")
00:00:50 v #1391 > > │ input=Comment("/&H")
00:00:50 v #1392 > > │ input=Comment("b\"~%\"9O")
00:00:50 v #1393 > > │ input=Integer(-8160050403897627356)
00:00:50 v #1394 > > │ input=StringLiteral("~+g'.T?+JsR;mHB4*Zn?6")
00:00:50 v #1395 > > │ input=Identifier("ThCf05QQIv2f55853Sm2HCp4bgMU")
00:00:50 v #1396 > > │ input=StringLiteral("BAZ:j:*KS].p/`")
00:00:50 v #1397 > > │ input=Comment("&^PJ")
00:00:50 v #1398 > > │ input=Integer(-500374795103539888)
00:00:50 v #1399 > > │ input=StringLiteral("JH{.Ro*G7D")
00:00:50 v #1400 > > │ input=Comment("z`b.?$rk%./<NH~1zp}IL*d'")
00:00:50 v #1401 > > │ input=Operator("=")
00:00:50 v #1402 > > │ input=Identifier("XojmF0cxs")
00:00:50 v #1403 > > │ input=StringLiteral("KNR>.98@Ynw$1b'1")
00:00:50 v #1404 > > │ input=StringLiteral("y`7R]<P`d%Q*bi~gx`<")
00:00:50 v #1405 > > │ input=Integer(-7621822772001031343)
00:00:50 v #1406 > > │ input=StringLiteral("d.g%D5Z`h&J/RDo&bb")
00:00:50 v #1407 > > │ input=Integer(5570206718259793515)
00:00:50 v #1408 > > │ input=Integer(-7283538394161360374)
00:00:50 v #1409 > > │ input=Identifier("R55")
00:00:50 v #1410 > > │ input=Integer(1103725789211794527)
00:00:50 v #1411 > > │ input=Identifier("ks3")
00:00:50 v #1412 > > │ input=Identifier("sM")
00:00:50 v #1413 > > │ input=Identifier("zgMLicIgsb1i9BbC01ZmIr")
00:00:50 v #1414 > > │ input=Integer(-1660047724756148540)
00:00:50 v #1415 > > │ input=Integer(7315234693998266026)
00:00:50 v #1416 > > │ input=Integer(-784253713940141167)
00:00:50 v #1417 > > │ input=Comment(".xw\\80D+.nL~r$N\\WEb@1``.cM\"`E\"['")
00:00:50 v #1418 > > │ input=Identifier("pe1DXeJ")
00:00:50 v #1419 > > │ input=Identifier("qe49MZwvud")
00:00:50 v #1420 > > │ input=Comment(":Gh|`,wb7")
00:00:50 v #1421 > > │ input=Identifier("ugS3")
00:00:50 v #1422 > > │ input=Identifier("RdG1XxT5p592G8896zUfAxTq")
00:00:50 v #1423 > > │ input=Integer(-1506271493955151213)
00:00:50 v #1424 > > │ input=Identifier("oSz2oQv2999gIY9te8THaNxToj")
00:00:50 v #1425 > > │ input=Integer(-5062106828421132183)
00:00:50 v #1426 > > │ input=Integer(-8197443055887405223)
00:00:50 v #1427 > > │ input=Identifier("iJNkFakIxWJhFR6PRbh8Iqe9Nvt8D")
00:00:50 v #1428 > > │ input=Identifier("TwBn8FR05OR3j67Tj7GPqruAPxKup89")
00:00:50 v #1429 > > │ input=Integer(-4842999798262656855)
00:00:50 v #1430 > > │ input=Comment("=*Xe/.a")
00:00:50 v #1431 > > │ input=StringLiteral("W=%gs%")
00:00:50 v #1432 > > │ input=Operator("*")
00:00:50 v #1433 > > │ input=Comment("3^`V??``A~*D'd9k{\"pUR0`$")
00:00:50 v #1434 > > │ input=Identifier("j")
00:00:50 v #1435 > > │ input=Comment("O&N>e4{")
00:00:50 v #1436 > > │ input=Integer(-5807605501418948104)
00:00:50 v #1437 > > │ input=StringLiteral("!`pI`yP|~O&N~P`3q#>`$5iU*~=Z&")
00:00:50 v #1438 > > │ input=StringLiteral("D.")
00:00:50 v #1439 > > │ input=Operator("=")
00:00:50 v #1440 > > │ input=Identifier("R1N5391")
00:00:50 v #1441 > > │ input=StringLiteral("p{6;8:P;gXh.[p")
00:00:50 v #1442 > > │ input=Comment("")
00:00:50 v #1443 > > │ input=Comment("]jHP\\|{!#;&Xse&?=\"1CFtapUD]u$y")
00:00:50 v #1444 > > │ input=StringLiteral(">?/?ZY<!W(N")
00:00:50 v #1445 > > │ input=Operator("-")
00:00:50 v #1446 > > │ input=Comment("\"Jev2&,^q$:\"")
00:00:50 v #1447 > > │ input=StringLiteral("<MqR(_C.</y<uq:.r")
00:00:50 v #1448 > > │ input=Comment("uw<4`.")
00:00:50 v #1449 > > │ input=Identifier("tE7NLqNi")
00:00:50 v #1450 > > │ input=Identifier("x")
00:00:50 v #1451 > > │ input=Comment("AgV?`E&\\y2&")
00:00:50 v #1452 > > │ input=Integer(654722179136731489)
00:00:50 v #1453 > > │ input=Comment("XnI:")
00:00:50 v #1454 > > │ input=Identifier("MbJB36vHk707w85ChG9u3PjwCz1eb9B")
00:00:50 v #1455 > > │ input=Operator("*")
00:00:50 v #1456 > > │ input=StringLiteral(",")
00:00:50 v #1457 > > │ input=StringLiteral("vvW8")
00:00:50 v #1458 > > │ input=Identifier("QcbKhO31G5")
00:00:50 v #1459 > > │ input=Identifier("y7JH1a6pv37gUnHUBhIN5N1cF1Qf3")
00:00:50 v #1460 > > │ input=Integer(3593432826851119284)
00:00:50 v #1461 > > │ input=Comment(".5Bpn:vS<e/{d.1[%%")
00:00:50 v #1462 > > │ input=Identifier("CI4HXa")
00:00:50 v #1463 > > │ input=Identifier("S6hef7PAn55d")
00:00:50 v #1464 > > │ input=Operator("+")
00:00:50 v #1465 > > │ input=Integer(-4673058335261327966)
00:00:50 v #1466 > > │ input=StringLiteral("Z&!s}>{[zur{l._dj`{q$M=")
00:00:50 v #1467 > > │ input=Comment("G:k:/A8\"~\\SFkqa\"p/+U{|}")
00:00:50 v #1468 > > │ input=Identifier("YCs5TY4RgoWM6FWv3J4VMLX")
00:00:50 v #1469 > > │ input=Integer(4362578244334414900)
00:00:50 v #1470 > > │ input=StringLiteral("=`-'av,.M8")
00:00:50 v #1471 > > │ input=Operator("-")
00:00:50 v #1472 > > │ input=Operator("+")
00:00:50 v #1473 > > │ input=Comment("%[,,c?/X=p,9b}k.p,VH*\"t\\v]LYfE51")
00:00:50 v #1474 > > │ input=Identifier("JCfk8UReF8s3Y1mP830fGMN2mEfz91HF")
00:00:50 v #1475 > > │ input=StringLiteral("*R(*:?no:O7':'FPyq:%.zJ2PD.]")
00:00:50 v #1476 > > │ input=StringLiteral("=U'xk")
00:00:50 v #1477 > > │ input=StringLiteral("3'")
00:00:50 v #1478 > > │ input=StringLiteral("L~7Qs?<sH3-e,iT$oQ?fI$D{A")
00:00:50 v #1479 > > │ input=Identifier("wqmu2ufrZRRXZ6YFu76I0GSN2yS1c2")
00:00:50 v #1480 > > │ input=Identifier("dgMBG5ZShr10YQYD3n4pRP")
00:00:50 v #1481 > > │ input=Identifier("Vz13")
00:00:50 v #1482 > > │ input=Integer(-4038850811345025162)
00:00:50 v #1483 > > │ input=Integer(8564409339288167886)
00:00:50 v #1484 > > │ input=Operator("*")
00:00:50 v #1485 > > │ input=Integer(6849989225274926618)
00:00:50 v #1486 > > │ input=Integer(9046066122775595332)
00:00:50 v #1487 > > │ input=Operator("/")
00:00:50 v #1488 > > │ input=Comment("'$'$")
00:00:50 v #1489 > > │ input=Comment("P=z*{sX/0O0[")
00:00:50 v #1490 > > │ input=Identifier("gWKhsFUBxMeMzt")
00:00:50 v #1491 > > │ input=Comment("='")
00:00:50 v #1492 > > │ input=Integer(8506704333794864467)
00:00:50 v #1493 > > │ input=Operator("(")
00:00:50 v #1494 > > │ input=Comment("&N//0[$Vg`*G{'`pb.+bS*%&O?(")
00:00:50 v #1495 > > │ input=Integer(5618575927785344145)
00:00:50 v #1496 > > │ input=Integer(-7953824387861401774)
00:00:50 v #1497 > > │ input=Operator("/")
00:00:50 v #1498 > > │ input=Integer(-7993643119555420385)
00:00:50 v #1499 > > │ input=Integer(-1366503405847525670)
00:00:50 v #1500 > > │ input=Identifier("N8bSFJid0Fvh29i4f90K7zmO")
00:00:50 v #1501 > > │ input=Operator("+")
00:00:50 v #1502 > > │ input=Operator("-")
00:00:50 v #1503 > > │ input=Operator("+")
00:00:50 v #1504 > > │ input=Integer(2072418828117887545)
00:00:50 v #1505 > > │ input=Integer(-5761099810649418803)
00:00:50 v #1506 > > │ input=Integer(8923287364686364775)
00:00:50 v #1507 > > │ input=StringLiteral("<%A$',z[g$zH[4<`")
00:00:50 v #1508 > > │ input=Integer(1553023650338175667)
00:00:50 v #1509 > > │ input=Comment("m+??:%x")
00:00:50 v #1510 > > │ input=Identifier("T0NKUZerIHSShtZB4cXc3FTUiAoBgLU")
00:00:50 v #1511 > > │ input=Integer(6264338657647531077)
00:00:50 v #1512 > > │ input=StringLiteral("]$&Od*=2{/%U'!Ck$&)")
00:00:50 v #1513 > > │ input=Identifier("E1PjAy452349")
00:00:50 v #1514 > > │ input=Operator("+")
00:00:50 v #1515 > > │ input=Integer(-655151443782470548)
00:00:50 v #1516 > > │ input=Operator("*")
00:00:50 v #1517 > > │ input=Integer(5288142403611399304)
00:00:50 v #1518 > > │ input=Integer(1667823851704407144)
00:00:50 v #1519 > > │ input=Integer(-7199464754632269994)
00:00:50 v #1520 > > │ input=Identifier("oH")
00:00:50 v #1521 > > │ input=Integer(-9098378950008443227)
00:00:50 v #1522 > > │ input=Comment("-$($C4.{,g")
00:00:50 v #1523 > > │ input=StringLiteral("uu>{WmeJLA(hqYFZR&<")
00:00:50 v #1524 > > │ input=Identifier("HiYH4y69RbFA5X")
00:00:50 v #1525 > > │ input=Comment("D!K:Q!)u}'$F1\\Q*z;jYp!9")
00:00:50 v #1526 > > │ input=StringLiteral("F")
00:00:50 v #1527 > > │ input=Operator("=")
00:00:50 v #1528 > > │ input=Operator("+")
00:00:50 v #1529 > > │ input=Operator("*")
00:00:50 v #1530 > > │ input=Operator(")")
00:00:50 v #1531 > > │ input=StringLiteral("n:6@gD.}]d3&tD:1~{_^N<:)")
00:00:50 v #1532 > > │ input=Comment("Hd<|*:<P2Vv_[;2,,T.5")
00:00:50 v #1533 > > │ input=Operator("/")
00:00:50 v #1534 > > │ input=Integer(-7025691018163800191)
00:00:50 v #1535 > > │ input=Comment("oN%\\_4u\\hn)<T~%j I$cS$x-+'")
00:00:50 v #1536 > > │ input=Operator("=")
00:00:50 v #1537 > > │ input=StringLiteral("I/")
00:00:50 v #1538 > > │ input=Operator("=")
00:00:50 v #1539 > > │ input=Comment("ehe]2!45?")
00:00:50 v #1540 > > │ input=Comment("$\"AW'jS):b1\\0&=X~mqg%bz")
00:00:50 v #1541 > > │ input=Identifier("W9Jlvo3Qb2L5F548nj4Hi7GA87OY")
00:00:50 v #1542 > > │ input=Identifier("mJUdQY4y8sp04u2HNj4DluBa")
00:00:50 v #1543 > > │ input=Comment("VU`'%/'*&jQ[J[f!o9KTC,/&$dho+")
00:00:50 v #1544 > > │ input=Integer(-4023864247054364623)
00:00:50 v #1545 > > │ input=StringLiteral("lXp:JMw@`*?]Uq!<#&")
00:00:50 v #1546 > > │ input=StringLiteral("&'S$!k4mTob^+<PwJ")
00:00:50 v #1547 > > │ input=StringLiteral("vgL(")
00:00:50 v #1548 > > │ input=StringLiteral("`{t{i?<6.!{'1y:B_=M^?V.*4@")
00:00:50 v #1549 > > │ input=Comment("=X.]*")
00:00:50 v #1550 > > │ input=Comment("%H{'kJ6+#D//L`ZL?`\\Ua'D")
00:00:50 v #1551 > > │ input=StringLiteral("/=*4{Fk9yi`$>jx*$ZvqP8;%")
00:00:50 v #1552 > > │ input=Integer(-3106171055857584793)
00:00:50 v #1553 > > │ input=Operator("*")
00:00:50 v #1554 > > │ input=StringLiteral("ke*4+<T'.")
00:00:50 v #1555 > > │ input=Identifier("X8ZpoSOXLr0ioQ")
00:00:50 v #1556 > > │ input=Identifier("NCGcJ0c2K9wPqUqOFs9b9KLX4")
00:00:50 v #1557 > > │ input=StringLiteral("n gVxvqqQP9WB1JF_!'u`at2)HM/DF<")
00:00:50 v #1558 > > │ input=Integer(3911022444547172272)
00:00:50 v #1559 > > │ input=Integer(6982154119703986468)
00:00:50 v #1560 > > │ input=Comment("!4[j.q:Xx9fl")
00:00:50 v #1561 > > │ input=Comment("j[*?=er/D{&{{s.q&<X%?&' .oA*+Y")
00:00:50 v #1562 > > │ input=Operator("+")
00:00:50 v #1563 > > │ input=Integer(3390735690688895277)
00:00:50 v #1564 > > │ input=Comment(")?ub^1En><'R[[")
00:00:50 v #1565 > > │ input=Identifier("L083Mnfe7fELmxBM55Yq")
00:00:50 v #1566 > > │ input=Comment("=tj\"<z4l$T{]WfV:)\\%")
00:00:50 v #1567 > > │ input=Identifier("bypPA")
00:00:50 v #1568 > > │ input=Integer(-6896622735392020196)
00:00:50 v #1569 > > │ input=Identifier("Nh8Rh4F66X854X3PYV5J6Cv")
00:00:50 v #1570 > > │ input=Identifier("Se90mp35W33e41vtKkmt7")
00:00:50 v #1571 > > │ input=Identifier("crjhbQOsKkhTAU9VG78e")
00:00:50 v #1572 > > │ input=Integer(-3541885222259417710)
00:00:50 v #1573 > > │ input=Integer(6588730250911681034)
00:00:50 v #1574 > > │ input=Integer(-5369968629889930126)
00:00:50 v #1575 > > │ input=Operator("/")
00:00:50 v #1576 > > │ input=Integer(6720343372719163350)
00:00:50 v #1577 > > │ input=Operator(")")
00:00:50 v #1578 > > │ input=Identifier("I95n")
00:00:50 v #1579 > > │ input=Integer(-2959568110640649424)
00:00:50 v #1580 > > │ input=StringLiteral("5,{(=2`*.h$5DZ")
00:00:50 v #1581 > > │ input=Identifier("ZclyzUq084c0Ft08k")
00:00:50 v #1582 > > │ input=Comment("{Io(&GA`s")
00:00:50 v #1583 > > │ input=Integer(1940579673722620796)
00:00:50 v #1584 > > │ input=Identifier("cTQpvVc7ysQOH2qWNE")
00:00:50 v #1585 > > │ input=StringLiteral("~;p:D4dLb/'<j($a7;xPS*>W*")
00:00:50 v #1586 > > │ input=Integer(3007280618169595241)
00:00:50 v #1587 > > │ input=Identifier("GvMwc5U9xF33n5Qr8MDf")
00:00:50 v #1588 > > │ input=Comment("?{Dsi\"* :9`':3\"=\\")
00:00:50 v #1589 > > │ input=Integer(5077072773514293436)
00:00:50 v #1590 > > │ input=StringLiteral("/&:RpOhaI:sS$M")
00:00:50 v #1591 > > │ input=Comment("|'`.'4`KNxsVS$':D`S~\"uy*c^$")
00:00:50 v #1592 > > │ input=Integer(7334839113545090518)
00:00:50 v #1593 > > │ input=Integer(2316244573036977933)
00:00:50 v #1594 > > │ input=Operator("+")
00:00:50 v #1595 > > │ input=Integer(-7997892762806947650)
00:00:50 v #1596 > > │ input=StringLiteral("xg ,]-Z7({w'tl$7i}>")
00:00:50 v #1597 > > │ input=Operator("*")
00:00:50 v #1598 > > │ input=Operator("+")
00:00:50 v #1599 > > │ input=Identifier("v9pO6cPiAeQJOU2G1NwvID")
00:00:50 v #1600 > > │ input=StringLiteral("sRB ([=Jx`<jej[qu{s){%,T:m$K")
00:00:50 v #1601 > > │ input=Comment("S*-}B(?")
00:00:50 v #1602 > > │ input=Operator("(")
00:00:50 v #1603 > > │ input=Operator("*")
00:00:50 v #1604 > > │ input=StringLiteral("=<2$|WCV$G$E")
00:00:50 v #1605 > > │ input=StringLiteral("jeG")
00:00:50 v #1606 > > │ input=Comment("1?O.6fPf'oXk%e*?cm`tUy_")
00:00:50 v #1607 > > │ input=Identifier("kozo5UtNeT4m4hhx38gcqn3")
00:00:50 v #1608 > > │
00:00:50 v #1609 > > │
00:00:50 v #1610 > > │ successes:
00:00:50 v #1611 > > │
00:00:50 v #1612 > > adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged
00:00:50 v #1613 > > │     prop_parse_format_idempotent
00:00:50 v #1614 > > │     test_parse_number
00:00:50 v #1615 > > │
00:00:50 v #1616 > > │ test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0
00:00:50 v #1617 > > filtered out; finished in 0.07s
00:00:50 v #1618 > > │
00:00:50 v #1619 > > │
00:00:50 v #1620 > >
00:00:50 v #1621 > > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 v #1622 > > │ ### execute the binary in release mode
00:00:50 v #1623 > >
00:00:50 v #1624 > > ── pwsh ────────────────────────────────────────────────────────────────────────
00:00:50 v #1625 > > { . $ScriptDir/../../../../workspace/target/release/spiral_temp_test$(_exe) } |
00:00:50 v #1626 > > Invoke-Block
00:00:50 v #1627 > >
00:00:50 v #1628 > > ── [ 7.88ms - stdout ] ─────────────────────────────────────────────────────────
00:00:50 v #1629 > > │ app=test
00:00:50 v #1630 > > │
00:00:50 v #1631 > 00:00:49 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 96371 }
00:00:50 v #1632 > 00:00:49 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:51 v #1633 > 00:00:49 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb to html
00:00:51 v #1634 > 00:00:49 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:51 v #1635 > 00:00:49 v #7 !   validate(nb)
00:00:51 v #1636 > 00:00:50 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:51 v #1637 > 00:00:50 v #9 !   return _pygments_highlight(
00:00:51 v #1638 > 00:00:50 v #10 ! [NbConvertApp] Writing 396288 bytes to /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.html
00:00:51 v #1639 > 00:00:50 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 916 }
00:00:51 v #1640 > 00:00:50 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 916 }
00:00:51 v #1641 > 00:00:50 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:52 v #1642 > 00:00:50 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:52 v #1643 > 00:00:50 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:52 v #1644 > 00:00:50 d #16 spiral.run / dib / { exit_code = 0; result_length = 97346 }
00:00:52 d #1645 runtime.execute_with_options_async / { exit_code = 0; output_length = 103296 }
00:00:52 d #3 main / executeCommand / exitCode: 0 / command: ../../../../deps/spiral/workspace/target/release/spiral dib --path build.dib
00:00:52 v #33 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) }
Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B]
Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease
Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease
Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B]
Get:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:8 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [12.1 kB]
Get:9 https://packages.microsoft.com/ubuntu/24.04/prod noble/main armhf Packages [6615 B]
Get:10 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [19.3 kB]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [783 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble-updates/main Translation-en [178 kB]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [151 kB]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [976 kB]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [313 kB]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:18 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [208 B]
Get:19 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [17.6 kB]
Get:20 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [216 B]
Get:21 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
Get:22 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [7232 B]
Get:23 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [52.0 kB]
Get:24 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [212 B]
Get:25 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B]
Fetched 2900 kB in 1s (5126 kB/s)
Reading package lists...
Repository: 'Types: deb
URIs: https://ppa.launchpadcontent.net/savoury1/blender/ubuntu/
Suites: noble
Components: main
'
Description:
Blender 3.6.11 builds (plus 3.3.18 LTS & 2.93.18 LTS) for Xenial & newer.

*** Blender builds here depend upon the private PPA for installation! ***

*** Please always see https://launchpad.net/~savoury1 for general updates about this Launchpad site before contacting me or reporting any bugs! ***

*** Big thanks to all those who have donated to support this project, you are very directly helping to keep it alive! To all who have not donated: please do so if you can afford it, this project depends on donations. ***

If software at this site is useful to you then please consider a donation:

*** Donations: https://paypal.me/Savoury1 & https://ko-fi.com/Savoury1 ***
*** Also https://patreon.com/Savoury1 & https://liberapay.com/Savoury1 ***

Update (27 Aug 2023): All pre-compiled CUDA kernels from today are created with CUDA 11.8.0 (this version rather than CUDA >= 12 is currently being chosen for widest compatibility with all Blender versions offered here).

*** For older updates about builds see "Updates" after "Install" below ***

* Note: The blender and blender-{293,lts} versions can be co-installed on the same system, as some blender* files are packaged as blender-{293,lts}* to ensure no file conflicts between the three packages. Plus they also use unique config paths (~/.config/blender/{2.93,3.3,3.6} for 293, LTS, main).

These are fresh builds with as many features enabled as possible. Making use of work by Irie Shinsuke [1], Thomas Schiex [2] & Debian's multimedia packaging team (thank you all!) and developing that work further this is a fairly complete and up-to-date Blender build. Packages found here that are not in default Debian/Ubuntu repos include: Alembic, Open Image Denoise, Open Shading Language, and Universal Scene Description (USD) from Pixar.

==========================================================================
                  Blender - fresh builds (Xenial & newer)
==========================================================================

alembic-io (1.8.6), armadillo (10.8.2), arpack (3.8.0), blender (3.6.11), blender-293 (2.93.18 old LTS), blender-git (4.1.0 Release Candidate 20240321), blender-lts (3.3.18), boost1.74 (1.74.0 Focal build has both Python 3.8 & 3.9 libraries), c-blosc (1.21.1), cfitsio (4.0.0), charls (2.4.2), coin3 (4.0.0), collada-dom (2.5.0), dcmtk (3.6.7), embree (3.13.4), expat (2.6.1), freeglut (3.4.0), freeimage (3.18.0), freexl (1.0.6), gdal (3.4.1), gdcm (3.0.14), geos (3.10.2), gmp (6.3.0), hwloc (2.10.0), ilmbase (3.1.11 = imath), jasper (4.2.4), json-c (0.18), kvazaar (2.3.1), lerc (4.0.0), libcrypto++ (8.9.0), libde265 (1.0.15), libdeflate (1.22), libevent (2.1.12-stable), libgeotiff (1.7.1), libheif (1.19.5), libraw (0.21.2), libwebp (1.4.0), libzstd (1.5.6), llvm-toolchain-15 (15.0.7), mpdecimal (2.5.1), nanovdb (32.3-3), netcdf (4.8.1), ogdi-dfsg (4.1.0), onetbb (2021.9.0), opencollada (1.6.68), opencolorio (2.2.1), opencolorio1 (1.1.1), opencv (imath builds), openexr (3.2.4), openimagedenoise (2.2.2), openimagedenoise1 (1.4.3), openimageio (2.5.11.0), openjpeg2 (2.5.0), openscenegraph (3.6.5), openshadinglanguage (1.12.14.0), opensubdiv (3.5.0), openvdb (9.1.0), poppler (22.02.0), poppler-data (0.4.11), proj (8.2.1), pugixml (1.14.0), python3.10 (3.10.16), python3.11 (3.11.11), python3.9 (3.9.21), qhull (2020.2), robin-map (1.0.1), snappy (1.1.10), spatialite (5.0.1), superlu (5.3.0), tbb (2020.3), tiff (4.7.0), uriparser (0.9.7), usd (22.11), yaml-cpp (0.8.0), zlib (1.3.1)

Focal only: libdbi-perl (1.20 = libdeflate / renamed source for i386), numpy (1.19.5 with both Python 3.8 & 3.9 modules), pyside2 (5.14.0+really5.13.2 downgrade, due various use cases being broken by pyside2 5.14 plus Qt 5.12 in default Focal repositories, eg. missing pyside2-uic binary)

Xenial & Bionic: curl, collada2gltf, fftw3, fontconfig, freetype, hdf5 (1.10.0-patch1 libopenmpi3 rebuilds), icu (66.1), icu-le-hb (1.0.3+git180724), jemalloc (5.2.1), json-c4, libdap, libidn2, libpng1.6, libpsl (0.21.0), librttopo (1.1.0), mpich (3.3.2), openmpi (4.0.3), openssl, potrace (1.16), pysimplesoap, python-{boto,httplib2,imaplib2} (compat with new openssl), tesseract, xerces-c (3.2.2), xz-utils

Xenial only: icu60, icu-le-hb, infinipath-psm, libfabric, libharu, libkml, libsquish, nghttp2, openmpi2 (2.1.1), rdma-core, sqlite3 (3.22.0)

Note: Many above deps for Xenial & Bionic are interconnected and have been copied here from other PPAs at this Launchpad site to make installation of the latest Blender on older series easier, without needing too many PPAs.

==========================================================================

*** Install ***

Blender here is built with the public FFmpeg 4 PPA (ppa:savoury1/ffmpeg4) and also the private FFmpeg PPA (ppa:savoury1/ffmpeg). Anyone who has made a donation can contact me to request access to the private PPA. After you have been given private PPA access do these steps for successful install:

  sudo add-apt-repository ppa:savoury1/ffmpeg4
  sudo add-apt-repository ppa:savoury1/blender
  sudo apt-get update
  sudo apt-get upgrade && sudo apt-get dist-upgrade
  sudo apt-get install blender

Notes for Blender >= 3.5.0 builds: Blender >= 3.5.0 here is built with and requires FFmpeg >= 6.0 (as supported by latest Blender versions). Thus, to install will require adding the following command to the top of the above:

  sudo add-apt-repository ppa:savoury1/ffmpeg6

Notes for pre-22.04 systems: Blender >= 3.5.0 requires GCC >= 11 for both building and installation. Only 22.04 has this GCC available in "official" repos, so pre-22.04 systems will need to add one of two GCC 11 PPAs for a successful installation. Either GCC 11 binaries or GCC 11 defaults can be added (the second will make GCC 11 the system default GCC version). So add either of the following commands to the top of the above for installation:

  sudo add-apt-repository ppa:savoury1/gcc-11

OR

  sudo add-apt-repository ppa:savoury1/gcc-defaults-11

Notes for pre-20.04 systems: Blender is demanding software and more recent versions require many newer system libraries than shipped with these older series. Packages here are built with various other PPAs at this Launchpad site (see "Build" heading below), and require various newer packages from certain PPAs to successfully install. This includes requiring GCC >= 9.3.0 (default GCC for 20.04) for building & installing Blender < 3.5 versions.

Firstly the display PPA must be added (add this to the top of above list):

  sudo add-apt-repository ppa:savoury1/display

Then either a PPA with GCC 9 binaries only, or a PPA setting GCC 9 as the system default can be added (similar to GCC 11 for Blender >= 3.5.0). Note that only a GCC 11 PPA is needed if also running Blender >= 3.5.0, whereas a GCC 9 PPA is needed if not running Blender >= 3.5.0 & running either of the Blender LTS versions here. So add one of the following commands to the top of the above list if only installing a Blender < 3.5 LTS version here:

  sudo add-apt-repository ppa:savoury1/gcc-9

OR

  sudo add-apt-repository ppa:savoury1/gcc-defaults-9

If running nVidia hardware see the display PPA for more information about nVidia drivers: https://launchpad.net/~savoury1/+archive/ubuntu/display

Note for Xenial: CUDA 11.1+ requires Linux kernel >= 4.5 for bug-free functionality, just as a newer kernel is best for numerous post-Xenial release (2016 onwards) display drivers and graphics programs. See here:

https://docs.nvidia.com/cuda/archive/11.1.0/cuda-installation-guide-linux/index.html

See the same display PPA above re: kernel >= 4.5 for new display drivers.

* Notes about Numpy: Due Blender 3.1+ needing Python 3.10+ (Xenial is 3.5, Bionic 3.6, and Focal 3.8) Blender here is built with Python 3.10 for all series. Numpy from python3-numpy (to /usr/lib/python3/dist-packages) will therefore not work with Python 3.10 used by Blender for 20.04 and earlier. A workaround is to install Numpy through pip then add a user site-packages path to sys.path in a startup script (following steps outlined below).

All blender{-lts}-data packages here depend on python3.10{-distutils} to ensure a complete Python 3.10 install is available. The following commands using Python 3.10 will install pip first & then a compatible Python Numpy package (bootstrap.pypa.io is hosted by Python Packaging Authority or PyPA so it's a trusted site in terms of downloading get-pip.py to install pip):

  cd ~
  curl https://bootstrap.pypa.io/get-pip.py | python3.10
  python3.10 -m pip install --target=.local/lib/python3.10/site-packages \
  numpy

Then a Blender startup script can be added, using the path for user config files. Use "~/.config/blender/3.6/scripts/startup" for 3.6 and create a file such as usercustomize.py (change "USER" in the below to the logged in username on your system) with contents such as the following two lines:

  import sys
  sys.path.insert(0, '/home/USER/.local/lib/python3.10/site-packages')

The result will be that "import numpy" works fine after loading Blender on older series (ie. Xenial or Bionic) making Numpy functionality available.

* Notes about OptiX: A report from a user of this PPA states that OptiX is unavailable with these Blender builds, even with OptiX kernels being built on my own local system and included in the Blender data packages. Due me having no nVidia hardware at present it is not possible for me to confirm.

Blender _cannot_ be built here on Launchpad with the OptiX headers due the combination of two reasons: highly restrictive nVidia licensing terms for OptiX headers (no redistribution of header source whatsoever allowed); and Launchpad (like Debian) disabling all network access during all builds for valid security reasons (meaning the headers cannot be directly accessed on nVidia's website during the build). Thus, if OptiX support is unavailable in these builds (even with pre-compiled ptx OptiX kernels) then you will either have to do your own Blender builds or use official Linux binaries.

*** Updates ***

Update (12 Apr 2023): Blender 3.5.0 now available! Built with FFmpeg 6.0 & GCC 11, read notes below under "Install" for instructions on installation.

Update (10 Apr 2023): Blender builds from today require the private PPA to successfully install. Anyone who has donated can contact me about access.

Update (7 Oct 2022): A glitch upgrading to Blender 3.3.1 for 20.04 Focal users (LP: #1992110) has been fixed today. Upgrading should now work fine!

Update (12 Sep 2022): Latest Blender 3.3.0 & 3.4.0 Alpha have pre-compiled CUDA kernels built with CUDA Toolkit 11.7.1 (most recent release). Also, a glitch preventing glTF export with compression is now fixed via a complete redo of the relevant Draco patch to make it work on Debian/Ubuntu systems.

Update (31 Jul 2022): Blender 3.2.1 & 3.3.0 Beta versions are now building successfully for Focal! Achieved by building Boost 1.74.0 with Python 3.9 rather than Python 3.8 (Focal default). To use these new Blender builds on Focal _requires_ this custom Boost 1.74.0 build here. So if any Focal user already has Boost 1.74.0 installed (from a local build or another PPA) it must be removed to successfully install and run these Blender builds here!

Update (30 Apr 2022): Builds of all three Blender versions (main, LTS, and git) are now available for Jammy. Also an additional call for donations to support the work on this PPA as there have been very few donations in over a year and a half that have specifically been for these Blender builds. If more donations for Blender don't come then work on this PPA may well end.

Update (15 Apr 2022): Due a complex issue between Focal Python 3.8, Boost 1.71, and changes in Python 3.10 (deprecated C API functions), Blender 3.1 and higher (which requires Python 3.10) is not building for Focal. Blender LTS 2.93.8 is building successfully for Focal with Python 3.9 (best Python for Blender LTS, as running LTS version with Python 3.10 has some issues).

Update (4 Jan 2022): Blender LTS 2.93.x is now packaged as blender-lts and latest release Blender 3.0.x is now packaged as blender, with blender-git moving to newest 3.1.0 alpha source. This means blender-{lts,git} now both have data files installed in versioned paths (ie. /usr/share/blender/x.x).

Update (29 Sep 2021): Blender git builds now include cycles-x branch which has been merged into master upstream. Also see notes below about OptiX.

Update (26 Feb 2021): Blender 2.92.0+ supports building CUDA kernels with a combination of CUDA 10.2 and 11.3 for SM_30 through SM_8x architectures.

Update (29 Sep 2020): Blender 2.91.0 Alpha and newer builds now with USD (Universal Scene Description) support plus pre-compiled CUDA 11.1 kernels.

*** Build ***

This PPA has build dependencies on:

  ppa:savoury1/build-tools
  ppa:savoury1/llvm-defaults-14
  ppa:savoury1/boost-defaults1.74
  ppa:savoury1/backports
  ppa:savoury1/python
  ppa:savoury1/graphics
  ppa:savoury1/multimedia
  ppa:savoury1/ffmpeg4
  ppa:savoury1/display

Additionally, for Blender >= 3.5.0 builds:

  ppa:savoury1/ffmpeg6

Additionally, for Xenial, Bionic & Focal:

  ppa:savoury1/gcc-defaults-11 (Blender >= 3.5.0 builds only)

Additionally, for Xenial & Bionic:

  ppa:savoury1/gcc-defaults-9
  ppa:savoury1/haskell-build
  ppa:savoury1/tex-2019

Note about i386: Blender is not a good match for i386 arch and 2.90+ fails to build on i386 even after carefully removing all amd64 only configs and deps. The Blender packages built here will thus always be amd64 only, as that is clearly the target architecture for all features. So bye bye i386!

*** Credits ***

- Creators of Blender: The Blender Foundation and Blender Institute
  https://www.blender.org/about/

- Package code for Blender: Debian Multimedia Maintainers
  https://tracker.debian.org/pkg/blender

- Python 3.10 packages: Now provided by backports from ppa:savoury1/python
  with packaging hints and ideas from Felix Krull & the "deadsnakes" team
  (https://launchpad.net/~deadsnakes) whose packages were used previously.

- Package code for Alembic and Open Image Denoise: Irie Shinsuke

- Package code for Open Shading Language: Irie Shinsuke & Thomas Schiex

[1] https://launchpad.net/~irie/+archive/ubuntu/blender-builddep

[2] https://launchpad.net/~thomas-schiex/+archive/ubuntu/blenderGet:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B]
Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease
Hit:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease
Hit:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease
Hit:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease
Hit:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease
Get:8 https://ppa.launchpadcontent.net/savoury1/blender/ubuntu noble InRelease [17.8 kB]
Get:9 https://ppa.launchpadcontent.net/savoury1/blender/ubuntu noble/main amd64 Packages [4044 B]
Get:10 https://ppa.launchpadcontent.net/savoury1/blender/ubuntu noble/main Translation-en [1928 B]
Fetched 23.8 kB in 1s (19.4 kB/s)
Reading package lists...

More info: https://launchpad.net/~savoury1/+archive/ubuntu/blender
Adding repository.

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  blender-data gdal-data gdal-plugins gstreamer1.0-plugins-base i965-va-driver
  intel-media-va-driver libaacs0 libaec0 libarmadillo12 libarpack2t64 libass9
  libasyncns0 libavc1394-0 libavcodec60 libavdevice60 libavfilter9
  libavformat60 libavutil58 libbdplus0 libblas3 libblosc1 libbluray2
  libboost-iostreams1.83.0 libboost-locale1.83.0 libboost-thread1.83.0
  libbs2b0 libcaca0 libcdio-cdda2t64 libcdio-paranoia2t64 libcdio19t64
  libcdparanoia0 libcfitsio10t64 libcharls2 libchromaprint1 libcjson1
  libcodec2-1.2 libdav1d7 libdc1394-25 libdcmtk17t64 libdecor-0-0
  libdecor-0-plugin-1-gtk libembree4-4 libexif12 libfftw3-single3 libflac12t64
  libflite1 libfreexl1 libfyba0t64 libgdal34t64 libgdcm3.0t64 libgeos-c1t64
  libgeos3.12.1t64 libgeotiff5 libgif7 libgme0 libgphoto2-6t64 libgphoto2-l10n
  libgphoto2-port12t64 libgsm1 libgstreamer-plugins-base1.0-0 libhdf4-0-alt
  libhdf5-103-1t64 libhdf5-hl-100t64 libhwloc-plugins libhwloc15 libhwy1t64
  libiec61883-0 libigdgmm12 libimath-3-1-29t64 libjack-jackd2-0 libjemalloc2
  libjxl0.7 libkmlbase1t64 libkmldom1t64 libkmlengine1t64 liblapack3
  liblilv-0-0 liblog4cplus-2.0.5t64 libmbedcrypto7t64 libminizip1t64
  libmp3lame0 libmpg123-0t64 libmysofa1 libnetcdf19t64 libodbcinst2 libogdi4.1
  libopenal-data libopenal1 libopencolorio2.1t64 libopencv-core406t64
  libopencv-imgcodecs406t64 libopencv-imgproc406t64 libopencv-videoio406t64
  libopenexr-3-1-30 libopenimageio2.4t64 libopenmpt0t64 libopenvdb10.0t64
  libopus0 liborc-0.4-0t64 libosdcpu3.5.0t64 libosdgpu3.5.0t64 libplacebo338
  libpocketsphinx3 libpoppler134 libpostproc57 libpotrace0 libproj25
  libpugixml1v5 libpulse0 libpystring0 libqhull-r8.0 librav1e0 libraw1394-11
  librist4 librsvg2-2 librsvg2-common librttopo1 librubberband2 libsamplerate0
  libsdl2-2.0-0 libserd-0-0 libshine3 libsndfile1 libsndio7.0 libsocket++1
  libsord-0-0 libsoxr0 libspatialite8t64 libspeex1 libsphinxbase3t64 libspnav0
  libsratom-0-0 libsrt1.5-gnutls libssh-gcrypt-4 libsuperlu6 libsvtav1enc1d1
  libswresample4 libswscale7 libsz2 libtbb12 libtbbbind-2-5 libtbbmalloc2
  libtheora0 libtwolame0 libudfread0 libunibreak5 liburiparser1 libva-drm2
  libva-x11-2 libva2 libvdpau1 libvidstab1.1 libvisual-0.4-0 libvorbisenc2
  libvpl2 libvpx9 libx264-164 libx265-199 libxcb-shape0 libxerces-c3.2t64
  libxnvctrl0 libxv1 libxvidcore4 libyaml-cpp0.8 libzimg2 libzix-0-0
  libzvbi-common libzvbi0t64 mesa-va-drivers mesa-vdpau-drivers
  ocl-icd-libopencl1 pocketsphinx-en-us poppler-data proj-bin proj-data
  unixodbc-common va-driver-all vdpau-driver-all
Suggested packages:
  gvfs i965-va-driver-shaders libcuda1 libnvcuvid1 libnvidia-encode1
  libbluray-bdj libfftw3-bin libfftw3-dev geotiff-bin gdal-bin libgeotiff-epsg
  gphoto2 libvisual-0.4-plugins libhdf4-doc libhdf4-alt-dev hdf4-tools
  libhwloc-contrib-plugins jackd2 ogdi-bin libportaudio2 opus-tools pulseaudio
  libraw1394-doc librsvg2-bin serdi sndiod sordi speex spacenavd opencl-icd
  poppler-utils ghostscript fonts-japanese-mincho | fonts-ipafont-mincho
  fonts-japanese-gothic | fonts-ipafont-gothic fonts-arphic-ukai
  fonts-arphic-uming fonts-nanum libvdpau-va-gl1
The following NEW packages will be installed:
  blender blender-data gdal-data gdal-plugins gstreamer1.0-plugins-base
  i965-va-driver intel-media-va-driver libaacs0 libaec0 libarmadillo12
  libarpack2t64 libass9 libasyncns0 libavc1394-0 libavcodec60 libavdevice60
  libavfilter9 libavformat60 libavutil58 libbdplus0 libblas3 libblosc1
  libbluray2 libboost-iostreams1.83.0 libboost-locale1.83.0
  libboost-thread1.83.0 libbs2b0 libcaca0 libcdio-cdda2t64
  libcdio-paranoia2t64 libcdio19t64 libcdparanoia0 libcfitsio10t64 libcharls2
  libchromaprint1 libcjson1 libcodec2-1.2 libdav1d7 libdc1394-25 libdcmtk17t64
  libdecor-0-0 libdecor-0-plugin-1-gtk libembree4-4 libexif12 libfftw3-single3
  libflac12t64 libflite1 libfreexl1 libfyba0t64 libgdal34t64 libgdcm3.0t64
  libgeos-c1t64 libgeos3.12.1t64 libgeotiff5 libgif7 libgme0 libgphoto2-6t64
  libgphoto2-l10n libgphoto2-port12t64 libgsm1 libgstreamer-plugins-base1.0-0
  libhdf4-0-alt libhdf5-103-1t64 libhdf5-hl-100t64 libhwloc-plugins libhwloc15
  libhwy1t64 libiec61883-0 libigdgmm12 libimath-3-1-29t64 libjack-jackd2-0
  libjemalloc2 libjxl0.7 libkmlbase1t64 libkmldom1t64 libkmlengine1t64
  liblapack3 liblilv-0-0 liblog4cplus-2.0.5t64 libmbedcrypto7t64
  libminizip1t64 libmp3lame0 libmpg123-0t64 libmysofa1 libnetcdf19t64
  libodbcinst2 libogdi4.1 libopenal-data libopenal1 libopencolorio2.1t64
  libopencv-core406t64 libopencv-imgcodecs406t64 libopencv-imgproc406t64
  libopencv-videoio406t64 libopenexr-3-1-30 libopenimageio2.4t64
  libopenmpt0t64 libopenvdb10.0t64 libopus0 liborc-0.4-0t64 libosdcpu3.5.0t64
  libosdgpu3.5.0t64 libplacebo338 libpocketsphinx3 libpoppler134 libpostproc57
  libpotrace0 libproj25 libpugixml1v5 libpulse0 libpystring0 libqhull-r8.0
  librav1e0 libraw1394-11 librist4 librsvg2-2 librsvg2-common librttopo1
  librubberband2 libsamplerate0 libsdl2-2.0-0 libserd-0-0 libshine3
  libsndfile1 libsndio7.0 libsocket++1 libsord-0-0 libsoxr0 libspatialite8t64
  libspeex1 libsphinxbase3t64 libspnav0 libsratom-0-0 libsrt1.5-gnutls
  libssh-gcrypt-4 libsuperlu6 libsvtav1enc1d1 libswresample4 libswscale7
  libsz2 libtbb12 libtbbbind-2-5 libtbbmalloc2 libtheora0 libtwolame0
  libudfread0 libunibreak5 liburiparser1 libva-drm2 libva-x11-2 libva2
  libvdpau1 libvidstab1.1 libvisual-0.4-0 libvorbisenc2 libvpl2 libvpx9
  libx264-164 libx265-199 libxcb-shape0 libxerces-c3.2t64 libxnvctrl0 libxv1
  libxvidcore4 libyaml-cpp0.8 libzimg2 libzix-0-0 libzvbi-common libzvbi0t64
  mesa-va-drivers mesa-vdpau-drivers ocl-icd-libopencl1 pocketsphinx-en-us
  poppler-data proj-bin proj-data unixodbc-common va-driver-all
  vdpau-driver-all
0 upgraded, 179 newly installed, 0 to remove and 34 not upgraded.
Need to get 228 MB of archives.
After this operation, 708 MB of additional disk space will be used.
Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B]
Get:2 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 poppler-data all 0.4.12-1 [2060 kB]
Get:3 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 blender-data all 4.0.2+dfsg-1ubuntu8 [35.9 MB]
Get:4 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libva2 amd64 2.20.0-2build1 [66.2 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libva-drm2 amd64 2.20.0-2build1 [7124 B]
Get:6 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libva-x11-2 amd64 2.20.0-2build1 [12.0 kB]
Get:7 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libvdpau1 amd64 1.5-2build1 [27.8 kB]
Get:8 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libvpl2 amd64 2023.3.0-1build1 [99.8 kB]
Get:9 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 ocl-icd-libopencl1 amd64 2.3.2-1build1 [38.5 kB]
Get:10 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavutil58 amd64 7:6.1.1-3ubuntu5 [401 kB]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libcodec2-1.2 amd64 1.2.0-2build1 [8998 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libdav1d7 amd64 1.4.1-1build1 [604 kB]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgsm1 amd64 1.0.22-1build1 [27.8 kB]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhwy1t64 amd64 1.0.7-8.1build1 [584 kB]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libjxl0.7 amd64 0.7.0-10.2ubuntu6 [999 kB]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libmp3lame0 amd64 3.100-6build1 [142 kB]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libopus0 amd64 1.4-1build1 [208 kB]
Get:18 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 librav1e0 amd64 0.7.1-2 [1022 kB]
Get:19 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 librsvg2-2 amd64 2.58.0+dfsg-1build1 [2135 kB]
Get:20 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libshine3 amd64 3.1.1-2build1 [23.2 kB]
Get:21 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libspeex1 amd64 1.2.1-2ubuntu2.24.04.1 [59.6 kB]
Get:22 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsvtav1enc1d1 amd64 1.7.0+dfsg-2build1 [2425 kB]
Get:23 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsoxr0 amd64 0.1.3-4build3 [80.0 kB]
Get:24 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libswresample4 amd64 7:6.1.1-3ubuntu5 [63.8 kB]
Get:25 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libtheora0 amd64 1.1.1+dfsg.1-16.1build3 [211 kB]
Get:26 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libtwolame0 amd64 0.4.0-2build3 [52.3 kB]
Get:27 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libvorbisenc2 amd64 1.3.7-1build3 [80.8 kB]
Get:28 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libvpx9 amd64 1.14.0-1ubuntu2.1 [1143 kB]
Get:29 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libx264-164 amd64 2:0.164.3108+git31e19f9-1 [604 kB]
Get:30 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libx265-199 amd64 3.5-2build1 [1226 kB]
Get:31 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libxvidcore4 amd64 2:1.3.7-1build1 [219 kB]
Get:32 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libzvbi-common all 0.2.42-2 [42.4 kB]
Get:33 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libzvbi0t64 amd64 0.2.42-2 [261 kB]
Get:34 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavcodec60 amd64 7:6.1.1-3ubuntu5 [5851 kB]
Get:35 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libraw1394-11 amd64 2.1.2-2build3 [26.2 kB]
Get:36 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libavc1394-0 amd64 0.5.4-5build3 [15.4 kB]
Get:37 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libunibreak5 amd64 5.1-2build1 [25.0 kB]
Get:38 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libass9 amd64 1:0.17.1-2build1 [104 kB]
Get:39 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libudfread0 amd64 1.1.2-1build1 [19.0 kB]
Get:40 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libbluray2 amd64 1:1.3.4-1build1 [159 kB]
Get:41 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libchromaprint1 amd64 1.5.1-5 [30.5 kB]
Get:42 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgme0 amd64 0.6.3-7build1 [134 kB]
Get:43 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpg123-0t64 amd64 1.32.5-1ubuntu1.1 [169 kB]
Get:44 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenmpt0t64 amd64 0.7.3-1.1build3 [647 kB]
Get:45 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libcjson1 amd64 1.7.17-1 [24.8 kB]
Get:46 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libmbedcrypto7t64 amd64 2.28.8-1 [209 kB]
Get:47 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 librist4 amd64 0.2.10+dfsg-2 [74.9 kB]
Get:48 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsrt1.5-gnutls amd64 1.5.3-1build2 [316 kB]
Get:49 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libssh-gcrypt-4 amd64 0.10.6-2build2 [223 kB]
Get:50 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavformat60 amd64 7:6.1.1-3ubuntu5 [1153 kB]
Get:51 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libbs2b0 amd64 3.1.0+dfsg-7build1 [10.6 kB]
Get:52 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libflite1 amd64 2.2-6build3 [13.6 MB]
Get:53 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libserd-0-0 amd64 0.32.2-1 [43.6 kB]
Get:54 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libzix-0-0 amd64 0.4.2-2build1 [23.6 kB]
Get:55 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsord-0-0 amd64 0.16.16-2build1 [15.8 kB]
Get:56 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsratom-0-0 amd64 0.6.16-1build1 [17.3 kB]
Get:57 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 liblilv-0-0 amd64 0.24.22-1build1 [41.0 kB]
Get:58 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libmysofa1 amd64 1.3.2+dfsg-2ubuntu2 [1158 kB]
Get:59 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libplacebo338 amd64 6.338.2-2build1 [2654 kB]
Get:60 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libblas3 amd64 3.12.0-3build1.1 [238 kB]
Get:61 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 liblapack3 amd64 3.12.0-3build1.1 [2646 kB]
Get:62 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libasyncns0 amd64 0.8-6build4 [11.3 kB]
Get:63 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libflac12t64 amd64 1.4.3+ds-2.1ubuntu2 [197 kB]
Get:64 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libsndfile1 amd64 1.2.2-1ubuntu5 [208 kB]
Get:65 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libpulse0 amd64 1:16.1+dfsg1-2ubuntu10.1 [292 kB]
Get:66 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsphinxbase3t64 amd64 0.8+5prealpha+1-17build2 [126 kB]
Get:67 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpocketsphinx3 amd64 0.8.0+real5prealpha+1-15ubuntu5 [133 kB]
Get:68 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpostproc57 amd64 7:6.1.1-3ubuntu5 [49.9 kB]
Get:69 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libsamplerate0 amd64 0.2.2-4build1 [1344 kB]
Get:70 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 librubberband2 amd64 3.3.0+dfsg-2build1 [130 kB]
Get:71 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libswscale7 amd64 7:6.1.1-3ubuntu5 [193 kB]
Get:72 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libvidstab1.1 amd64 1.1.0-2build1 [38.5 kB]
Get:73 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libzimg2 amd64 3.0.5+ds1-1build1 [254 kB]
Get:74 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavfilter9 amd64 7:6.1.1-3ubuntu5 [4235 kB]
Get:75 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libcaca0 amd64 0.99.beta20-4build2 [208 kB]
Get:76 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libcdio19t64 amd64 2.1.0-4.1ubuntu1.2 [62.4 kB]
Get:77 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libcdio-cdda2t64 amd64 10.2+2.0.1-1.1build2 [16.5 kB]
Get:78 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libcdio-paranoia2t64 amd64 10.2+2.0.1-1.1build2 [16.6 kB]
Get:79 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libdc1394-25 amd64 2.2.6-4build1 [90.1 kB]
Get:80 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libiec61883-0 amd64 1.2.0-6build1 [24.5 kB]
Get:81 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libjack-jackd2-0 amd64 1.9.21~dfsg-3ubuntu3 [289 kB]
Get:82 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenal-data all 1:1.23.1-4build1 [161 kB]
Get:83 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsndio7.0 amd64 1.9.0-0.3build3 [29.6 kB]
Get:84 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenal1 amd64 1:1.23.1-4build1 [540 kB]
Get:85 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libdecor-0-0 amd64 0.2.2-1build2 [16.5 kB]
Get:86 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libsdl2-2.0-0 amd64 2.30.0+dfsg-1build3 [685 kB]
Get:87 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libxcb-shape0 amd64 1.15-1ubuntu2 [6100 B]
Get:88 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libxv1 amd64 2:1.0.11-1.1build1 [10.7 kB]
Get:89 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavdevice60 amd64 7:6.1.1-3ubuntu5 [82.3 kB]
Get:90 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-thread1.83.0 amd64 1.83.0-2.1ubuntu3.1 [276 kB]
Get:91 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-locale1.83.0 amd64 1.83.0-2.1ubuntu3.1 [413 kB]
Get:92 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libtbbmalloc2 amd64 2021.11.0-2ubuntu2 [60.5 kB]
Get:93 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhwloc15 amd64 2.10.0-1build1 [172 kB]
Get:94 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libtbbbind-2-5 amd64 2021.11.0-2ubuntu2 [16.4 kB]
Get:95 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libtbb12 amd64 2021.11.0-2ubuntu2 [106 kB]
Get:96 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libembree4-4 amd64 4.3.0+dfsg-2 [9265 kB]
Get:97 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libfftw3-single3 amd64 3.3.10-1ubuntu3 [868 kB]
Get:98 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libimath-3-1-29t64 amd64 3.1.9-3.1ubuntu2 [72.2 kB]
Get:99 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libjemalloc2 amd64 5.3.0-2build1 [256 kB]
Get:100 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpystring0 amd64 1.1.4-1build1 [28.4 kB]
Get:101 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libyaml-cpp0.8 amd64 0.8.0+dfsg-6build1 [115 kB]
Get:102 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencolorio2.1t64 amd64 2.1.3+dfsg-1.1build3 [1470 kB]
Get:103 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenexr-3-1-30 amd64 3.1.5-5.1build3 [1004 kB]
Get:104 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libdcmtk17t64 amd64 3.6.7-9.1build4 [5329 kB]
Get:105 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libgif7 amd64 5.2.2-1ubuntu1 [35.2 kB]
Get:106 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencv-core406t64 amd64 4.6.0+dfsg-13.1ubuntu1 [1202 kB]
Get:107 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencv-imgproc406t64 amd64 4.6.0+dfsg-13.1ubuntu1 [1460 kB]
Get:108 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libexif12 amd64 0.6.24-1build2 [87.9 kB]
Get:109 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libgphoto2-port12t64 amd64 2.5.31-2.1build2 [58.6 kB]
Get:110 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libgphoto2-6t64 amd64 2.5.31-2.1build2 [735 kB]
Get:111 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 liborc-0.4-0t64 amd64 1:0.4.38-1ubuntu0.1 [207 kB]
Get:112 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgstreamer-plugins-base1.0-0 amd64 1.24.2-1ubuntu0.2 [862 kB]
Get:113 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 gdal-data all 3.8.4+dfsg-3ubuntu3 [261 kB]
Get:114 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 gdal-plugins amd64 3.8.4+dfsg-3ubuntu3 [24.8 kB]
Get:115 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libaec0 amd64 1.1.2-1build1 [22.9 kB]
Get:116 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libarpack2t64 amd64 3.9.1-1.1build2 [106 kB]
Get:117 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsuperlu6 amd64 6.0.1+dfsg1-1build1 [180 kB]
Get:118 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libarmadillo12 amd64 1:12.6.7+dfsg-1build2 [106 kB]
Get:119 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libblosc1 amd64 1.21.5+ds-1build1 [36.2 kB]
Get:120 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libcfitsio10t64 amd64 4.3.1-1.1build2 [528 kB]
Get:121 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 libminizip1t64 amd64 1:1.3.dfsg-3.1ubuntu2.1 [22.2 kB]
Get:122 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libfreexl1 amd64 2.0.0-1build2 [41.7 kB]
Get:123 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libfyba0t64 amd64 4.1.1-11build1 [119 kB]
Get:124 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgeos3.12.1t64 amd64 3.12.1-3build1 [849 kB]
Get:125 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgeos-c1t64 amd64 3.12.1-3build1 [94.5 kB]
Get:126 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 proj-data all 9.4.0-1build2 [7885 kB]
Get:127 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libproj25 amd64 9.4.0-1build2 [1396 kB]
Get:128 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgeotiff5 amd64 1.7.1-5build1 [62.9 kB]
Get:129 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhdf4-0-alt amd64 4.2.16-4build1 [282 kB]
Get:130 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsz2 amd64 1.1.2-1build1 [5476 B]
Get:131 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhdf5-103-1t64 amd64 1.10.10+repack-3.1ubuntu4 [1270 kB]
Get:132 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 liburiparser1 amd64 0.9.7+dfsg-2build1 [35.8 kB]
Get:133 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libkmlbase1t64 amd64 1.3.0-12build1 [49.9 kB]
Get:134 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libkmldom1t64 amd64 1.3.0-12build1 [156 kB]
Get:135 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libkmlengine1t64 amd64 1.3.0-12build1 [71.4 kB]
Get:136 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhdf5-hl-100t64 amd64 1.10.10+repack-3.1ubuntu4 [56.0 kB]
Get:137 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libnetcdf19t64 amd64 1:4.9.2-5ubuntu4 [473 kB]
Get:138 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 unixodbc-common all 2.3.12-1ubuntu0.24.04.1 [8806 B]
Get:139 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libodbcinst2 amd64 2.3.12-1ubuntu0.24.04.1 [30.7 kB]
Get:140 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libogdi4.1 amd64 4.1.1+ds-3build1 [226 kB]
Get:141 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libpoppler134 amd64 24.02.0-1ubuntu9.2 [1114 kB]
Get:142 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libqhull-r8.0 amd64 2020.2-6build1 [193 kB]
Get:143 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 librttopo1 amd64 1.1.0-3build2 [191 kB]
Get:144 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libspatialite8t64 amd64 5.1.0-3build1 [1919 kB]
Get:145 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libxerces-c3.2t64 amd64 3.2.4+debian-1.2ubuntu2 [919 kB]
Get:146 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgdal34t64 amd64 3.8.4+dfsg-3ubuntu3 [8346 kB]
Get:147 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libcharls2 amd64 2.4.2-2build2 [90.4 kB]
Get:148 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsocket++1 amd64 1.12.13+git20131030.5d039ba-1build1 [83.1 kB]
Get:149 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgdcm3.0t64 amd64 3.0.22-2.1ubuntu1 [2160 kB]
Get:150 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencv-imgcodecs406t64 amd64 4.6.0+dfsg-13.1ubuntu1 [128 kB]
Get:151 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencv-videoio406t64 amd64 4.6.0+dfsg-13.1ubuntu1 [199 kB]
Get:152 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-iostreams1.83.0 amd64 1.83.0-2.1ubuntu3.1 [259 kB]
Get:153 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 liblog4cplus-2.0.5t64 amd64 2.0.8-1.1ubuntu3 [188 kB]
Get:154 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenvdb10.0t64 amd64 10.0.1-2.1build5 [4138 kB]
Get:155 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenimageio2.4t64 amd64 2.4.17.0+dfsg-1.1build4 [2751 kB]
Get:156 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libosdcpu3.5.0t64 amd64 3.5.0-2.1build1 [373 kB]
Get:157 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libosdgpu3.5.0t64 amd64 3.5.0-2.1build1 [149 kB]
Get:158 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpotrace0 amd64 1.16-2build1 [17.7 kB]
Get:159 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpugixml1v5 amd64 1.14-0.1build1 [91.9 kB]
Get:160 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libspnav0 amd64 1.1-2 [15.0 kB]
Get:161 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 blender amd64 4.0.2+dfsg-1ubuntu8 [25.6 MB]
Get:162 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libcdparanoia0 amd64 3.10.2+debian-14build3 [48.5 kB]
Get:163 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libvisual-0.4-0 amd64 0.4.2-2build1 [115 kB]
Get:164 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 gstreamer1.0-plugins-base amd64 1.24.2-1ubuntu0.2 [721 kB]
Get:165 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libigdgmm12 amd64 22.3.17+ds1-1 [145 kB]
Get:166 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 intel-media-va-driver amd64 24.1.0+dfsg1-1 [4022 kB]
Get:167 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libaacs0 amd64 0.11.1-2build1 [62.9 kB]
Get:168 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libbdplus0 amd64 0.2.0-3build1 [52.2 kB]
Get:169 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libdecor-0-plugin-1-gtk amd64 0.2.2-1build2 [22.2 kB]
Get:170 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libgphoto2-l10n all 2.5.31-2.1build2 [15.0 kB]
Get:171 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 librsvg2-common amd64 2.58.0+dfsg-1build1 [11.8 kB]
Get:172 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libxnvctrl0 amd64 510.47.03-0ubuntu4 [12.6 kB]
Get:173 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 mesa-va-drivers amd64 24.0.9-0ubuntu0.3 [4246 kB]
Get:174 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 mesa-vdpau-drivers amd64 24.0.9-0ubuntu0.3 [3904 kB]
Get:175 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 i965-va-driver amd64 2.4.1+dfsg1-1build2 [332 kB]
Get:176 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 va-driver-all amd64 2.20.0-2build1 [4844 B]
Get:177 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 vdpau-driver-all amd64 1.5-2build1 [4414 B]
Get:178 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhwloc-plugins amd64 2.10.0-1build1 [15.7 kB]
Get:179 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 pocketsphinx-en-us all 0.8.0+real5prealpha+1-15ubuntu5 [27.4 MB]
Get:180 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 proj-bin amd64 9.4.0-1build2 [164 kB]
Fetched 228 MB in 31s (7253 kB/s)
Selecting previously unselected package poppler-data.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 220335 files and directories currently installed.)
Preparing to unpack .../000-poppler-data_0.4.12-1_all.deb ...
Unpacking poppler-data (0.4.12-1) ...
Selecting previously unselected package blender-data.
Preparing to unpack .../001-blender-data_4.0.2+dfsg-1ubuntu8_all.deb ...
Unpacking blender-data (4.0.2+dfsg-1ubuntu8) ...
Selecting previously unselected package libva2:amd64.
Preparing to unpack .../002-libva2_2.20.0-2build1_amd64.deb ...
Unpacking libva2:amd64 (2.20.0-2build1) ...
Selecting previously unselected package libva-drm2:amd64.
Preparing to unpack .../003-libva-drm2_2.20.0-2build1_amd64.deb ...
Unpacking libva-drm2:amd64 (2.20.0-2build1) ...
Selecting previously unselected package libva-x11-2:amd64.
Preparing to unpack .../004-libva-x11-2_2.20.0-2build1_amd64.deb ...
Unpacking libva-x11-2:amd64 (2.20.0-2build1) ...
Selecting previously unselected package libvdpau1:amd64.
Preparing to unpack .../005-libvdpau1_1.5-2build1_amd64.deb ...
Unpacking libvdpau1:amd64 (1.5-2build1) ...
Selecting previously unselected package libvpl2.
Preparing to unpack .../006-libvpl2_2023.3.0-1build1_amd64.deb ...
Unpacking libvpl2 (2023.3.0-1build1) ...
Selecting previously unselected package ocl-icd-libopencl1:amd64.
Preparing to unpack .../007-ocl-icd-libopencl1_2.3.2-1build1_amd64.deb ...
Unpacking ocl-icd-libopencl1:amd64 (2.3.2-1build1) ...
Selecting previously unselected package libavutil58:amd64.
Preparing to unpack .../008-libavutil58_7%3a6.1.1-3ubuntu5_amd64.deb ...
Unpacking libavutil58:amd64 (7:6.1.1-3ubuntu5) ...
Selecting previously unselected package libcodec2-1.2:amd64.
Preparing to unpack .../009-libcodec2-1.2_1.2.0-2build1_amd64.deb ...
Unpacking libcodec2-1.2:amd64 (1.2.0-2build1) ...
Selecting previously unselected package libdav1d7:amd64.
Preparing to unpack .../010-libdav1d7_1.4.1-1build1_amd64.deb ...
Unpacking libdav1d7:amd64 (1.4.1-1build1) ...
Selecting previously unselected package libgsm1:amd64.
Preparing to unpack .../011-libgsm1_1.0.22-1build1_amd64.deb ...
Unpacking libgsm1:amd64 (1.0.22-1build1) ...
Selecting previously unselected package libhwy1t64:amd64.
Preparing to unpack .../012-libhwy1t64_1.0.7-8.1build1_amd64.deb ...
Unpacking libhwy1t64:amd64 (1.0.7-8.1build1) ...
Selecting previously unselected package libjxl0.7:amd64.
Preparing to unpack .../013-libjxl0.7_0.7.0-10.2ubuntu6_amd64.deb ...
Unpacking libjxl0.7:amd64 (0.7.0-10.2ubuntu6) ...
Selecting previously unselected package libmp3lame0:amd64.
Preparing to unpack .../014-libmp3lame0_3.100-6build1_amd64.deb ...
Unpacking libmp3lame0:amd64 (3.100-6build1) ...
Selecting previously unselected package libopus0:amd64.
Preparing to unpack .../015-libopus0_1.4-1build1_amd64.deb ...
Unpacking libopus0:amd64 (1.4-1build1) ...
Selecting previously unselected package librav1e0:amd64.
Preparing to unpack .../016-librav1e0_0.7.1-2_amd64.deb ...
Unpacking librav1e0:amd64 (0.7.1-2) ...
Selecting previously unselected package librsvg2-2:amd64.
Preparing to unpack .../017-librsvg2-2_2.58.0+dfsg-1build1_amd64.deb ...
Unpacking librsvg2-2:amd64 (2.58.0+dfsg-1build1) ...
Selecting previously unselected package libshine3:amd64.
Preparing to unpack .../018-libshine3_3.1.1-2build1_amd64.deb ...
Unpacking libshine3:amd64 (3.1.1-2build1) ...
Selecting previously unselected package libspeex1:amd64.
Preparing to unpack .../019-libspeex1_1.2.1-2ubuntu2.24.04.1_amd64.deb ...
Unpacking libspeex1:amd64 (1.2.1-2ubuntu2.24.04.1) ...
Selecting previously unselected package libsvtav1enc1d1:amd64.
Preparing to unpack .../020-libsvtav1enc1d1_1.7.0+dfsg-2build1_amd64.deb ...
Unpacking libsvtav1enc1d1:amd64 (1.7.0+dfsg-2build1) ...
Selecting previously unselected package libsoxr0:amd64.
Preparing to unpack .../021-libsoxr0_0.1.3-4build3_amd64.deb ...
Unpacking libsoxr0:amd64 (0.1.3-4build3) ...
Selecting previously unselected package libswresample4:amd64.
Preparing to unpack .../022-libswresample4_7%3a6.1.1-3ubuntu5_amd64.deb ...
Unpacking libswresample4:amd64 (7:6.1.1-3ubuntu5) ...
Selecting previously unselected package libtheora0:amd64.
Preparing to unpack .../023-libtheora0_1.1.1+dfsg.1-16.1build3_amd64.deb ...
Unpacking libtheora0:amd64 (1.1.1+dfsg.1-16.1build3) ...
Selecting previously unselected package libtwolame0:amd64.
Preparing to unpack .../024-libtwolame0_0.4.0-2build3_amd64.deb ...
Unpacking libtwolame0:amd64 (0.4.0-2build3) ...
Selecting previously unselected package libvorbisenc2:amd64.
Preparing to unpack .../025-libvorbisenc2_1.3.7-1build3_amd64.deb ...
Unpacking libvorbisenc2:amd64 (1.3.7-1build3) ...
Selecting previously unselected package libvpx9:amd64.
Preparing to unpack .../026-libvpx9_1.14.0-1ubuntu2.1_amd64.deb ...
Unpacking libvpx9:amd64 (1.14.0-1ubuntu2.1) ...
Selecting previously unselected package libx264-164:amd64.
Preparing to unpack .../027-libx264-164_2%3a0.164.3108+git31e19f9-1_amd64.deb ...
Unpacking libx264-164:amd64 (2:0.164.3108+git31e19f9-1) ...
Selecting previously unselected package libx265-199:amd64.
Preparing to unpack .../028-libx265-199_3.5-2build1_amd64.deb ...
Unpacking libx265-199:amd64 (3.5-2build1) ...
Selecting previously unselected package libxvidcore4:amd64.
Preparing to unpack .../029-libxvidcore4_2%3a1.3.7-1build1_amd64.deb ...
Unpacking libxvidcore4:amd64 (2:1.3.7-1build1) ...
Selecting previously unselected package libzvbi-common.
Preparing to unpack .../030-libzvbi-common_0.2.42-2_all.deb ...
Unpacking libzvbi-common (0.2.42-2) ...
Selecting previously unselected package libzvbi0t64:amd64.
Preparing to unpack .../031-libzvbi0t64_0.2.42-2_amd64.deb ...
Unpacking libzvbi0t64:amd64 (0.2.42-2) ...
Selecting previously unselected package libavcodec60:amd64.
Preparing to unpack .../032-libavcodec60_7%3a6.1.1-3ubuntu5_amd64.deb ...
Unpacking libavcodec60:amd64 (7:6.1.1-3ubuntu5) ...
Selecting previously unselected package libraw1394-11:amd64.
Preparing to unpack .../033-libraw1394-11_2.1.2-2build3_amd64.deb ...
Unpacking libraw1394-11:amd64 (2.1.2-2build3) ...
Selecting previously unselected package libavc1394-0:amd64.
Preparing to unpack .../034-libavc1394-0_0.5.4-5build3_amd64.deb ...
Unpacking libavc1394-0:amd64 (0.5.4-5build3) ...
Selecting previously unselected package libunibreak5:amd64.
Preparing to unpack .../035-libunibreak5_5.1-2build1_amd64.deb ...
Unpacking libunibreak5:amd64 (5.1-2build1) ...
Selecting previously unselected package libass9:amd64.
Preparing to unpack .../036-libass9_1%3a0.17.1-2build1_amd64.deb ...
Unpacking libass9:amd64 (1:0.17.1-2build1) ...
Selecting previously unselected package libudfread0:amd64.
Preparing to unpack .../037-libudfread0_1.1.2-1build1_amd64.deb ...
Unpacking libudfread0:amd64 (1.1.2-1build1) ...
Selecting previously unselected package libbluray2:amd64.
Preparing to unpack .../038-libbluray2_1%3a1.3.4-1build1_amd64.deb ...
Unpacking libbluray2:amd64 (1:1.3.4-1build1) ...
Selecting previously unselected package libchromaprint1:amd64.
Preparing to unpack .../039-libchromaprint1_1.5.1-5_amd64.deb ...
Unpacking libchromaprint1:amd64 (1.5.1-5) ...
Selecting previously unselected package libgme0:amd64.
Preparing to unpack .../040-libgme0_0.6.3-7build1_amd64.deb ...
Unpacking libgme0:amd64 (0.6.3-7build1) ...
Selecting previously unselected package libmpg123-0t64:amd64.
Preparing to unpack .../041-libmpg123-0t64_1.32.5-1ubuntu1.1_amd64.deb ...
Unpacking libmpg123-0t64:amd64 (1.32.5-1ubuntu1.1) ...
Selecting previously unselected package libopenmpt0t64:amd64.
Preparing to unpack .../042-libopenmpt0t64_0.7.3-1.1build3_amd64.deb ...
Unpacking libopenmpt0t64:amd64 (0.7.3-1.1build3) ...
Selecting previously unselected package libcjson1:amd64.
Preparing to unpack .../043-libcjson1_1.7.17-1_amd64.deb ...
Unpacking libcjson1:amd64 (1.7.17-1) ...
Selecting previously unselected package libmbedcrypto7t64:amd64.
Preparing to unpack .../044-libmbedcrypto7t64_2.28.8-1_amd64.deb ...
Unpacking libmbedcrypto7t64:amd64 (2.28.8-1) ...
Selecting previously unselected package librist4:amd64.
Preparing to unpack .../045-librist4_0.2.10+dfsg-2_amd64.deb ...
Unpacking librist4:amd64 (0.2.10+dfsg-2) ...
Selecting previously unselected package libsrt1.5-gnutls:amd64.
Preparing to unpack .../046-libsrt1.5-gnutls_1.5.3-1build2_amd64.deb ...
Unpacking libsrt1.5-gnutls:amd64 (1.5.3-1build2) ...
Selecting previously unselected package libssh-gcrypt-4:amd64.
Preparing to unpack .../047-libssh-gcrypt-4_0.10.6-2build2_amd64.deb ...
Unpacking libssh-gcrypt-4:amd64 (0.10.6-2build2) ...
Selecting previously unselected package libavformat60:amd64.
Preparing to unpack .../048-libavformat60_7%3a6.1.1-3ubuntu5_amd64.deb ...
Unpacking libavformat60:amd64 (7:6.1.1-3ubuntu5) ...
Selecting previously unselected package libbs2b0:amd64.
Preparing to unpack .../049-libbs2b0_3.1.0+dfsg-7build1_amd64.deb ...
Unpacking libbs2b0:amd64 (3.1.0+dfsg-7build1) ...
Selecting previously unselected package libflite1:amd64.
Preparing to unpack .../050-libflite1_2.2-6build3_amd64.deb ...
Unpacking libflite1:amd64 (2.2-6build3) ...
Selecting previously unselected package libserd-0-0:amd64.
Preparing to unpack .../051-libserd-0-0_0.32.2-1_amd64.deb ...
Unpacking libserd-0-0:amd64 (0.32.2-1) ...
Selecting previously unselected package libzix-0-0:amd64.
Preparing to unpack .../052-libzix-0-0_0.4.2-2build1_amd64.deb ...
Unpacking libzix-0-0:amd64 (0.4.2-2build1) ...
Selecting previously unselected package libsord-0-0:amd64.
Preparing to unpack .../053-libsord-0-0_0.16.16-2build1_amd64.deb ...
Unpacking libsord-0-0:amd64 (0.16.16-2build1) ...
Selecting previously unselected package libsratom-0-0:amd64.
Preparing to unpack .../054-libsratom-0-0_0.6.16-1build1_amd64.deb ...
Unpacking libsratom-0-0:amd64 (0.6.16-1build1) ...
Selecting previously unselected package liblilv-0-0:amd64.
Preparing to unpack .../055-liblilv-0-0_0.24.22-1build1_amd64.deb ...
Unpacking liblilv-0-0:amd64 (0.24.22-1build1) ...
Selecting previously unselected package libmysofa1:amd64.
Preparing to unpack .../056-libmysofa1_1.3.2+dfsg-2ubuntu2_amd64.deb ...
Unpacking libmysofa1:amd64 (1.3.2+dfsg-2ubuntu2) ...
Selecting previously unselected package libplacebo338:amd64.
Preparing to unpack .../057-libplacebo338_6.338.2-2build1_amd64.deb ...
Unpacking libplacebo338:amd64 (6.338.2-2build1) ...
Selecting previously unselected package libblas3:amd64.
Preparing to unpack .../058-libblas3_3.12.0-3build1.1_amd64.deb ...
Unpacking libblas3:amd64 (3.12.0-3build1.1) ...
Selecting previously unselected package liblapack3:amd64.
Preparing to unpack .../059-liblapack3_3.12.0-3build1.1_amd64.deb ...
Unpacking liblapack3:amd64 (3.12.0-3build1.1) ...
Selecting previously unselected package libasyncns0:amd64.
Preparing to unpack .../060-libasyncns0_0.8-6build4_amd64.deb ...
Unpacking libasyncns0:amd64 (0.8-6build4) ...
Selecting previously unselected package libflac12t64:amd64.
Preparing to unpack .../061-libflac12t64_1.4.3+ds-2.1ubuntu2_amd64.deb ...
Unpacking libflac12t64:amd64 (1.4.3+ds-2.1ubuntu2) ...
Selecting previously unselected package libsndfile1:amd64.
Preparing to unpack .../062-libsndfile1_1.2.2-1ubuntu5_amd64.deb ...
Unpacking libsndfile1:amd64 (1.2.2-1ubuntu5) ...
Selecting previously unselected package libpulse0:amd64.
Preparing to unpack .../063-libpulse0_1%3a16.1+dfsg1-2ubuntu10.1_amd64.deb ...
Unpacking libpulse0:amd64 (1:16.1+dfsg1-2ubuntu10.1) ...
Selecting previously unselected package libsphinxbase3t64:amd64.
Preparing to unpack .../064-libsphinxbase3t64_0.8+5prealpha+1-17build2_amd64.deb ...
Unpacking libsphinxbase3t64:amd64 (0.8+5prealpha+1-17build2) ...
Selecting previously unselected package libpocketsphinx3:amd64.
Preparing to unpack .../065-libpocketsphinx3_0.8.0+real5prealpha+1-15ubuntu5_amd64.deb ...
Unpacking libpocketsphinx3:amd64 (0.8.0+real5prealpha+1-15ubuntu5) ...
Selecting previously unselected package libpostproc57:amd64.
Preparing to unpack .../066-libpostproc57_7%3a6.1.1-3ubuntu5_amd64.deb ...
Unpacking libpostproc57:amd64 (7:6.1.1-3ubuntu5) ...
Selecting previously unselected package libsamplerate0:amd64.
Preparing to unpack .../067-libsamplerate0_0.2.2-4build1_amd64.deb ...
Unpacking libsamplerate0:amd64 (0.2.2-4build1) ...
Selecting previously unselected package librubberband2:amd64.
Preparing to unpack .../068-librubberband2_3.3.0+dfsg-2build1_amd64.deb ...
Unpacking librubberband2:amd64 (3.3.0+dfsg-2build1) ...
Selecting previously unselected package libswscale7:amd64.
Preparing to unpack .../069-libswscale7_7%3a6.1.1-3ubuntu5_amd64.deb ...
Unpacking libswscale7:amd64 (7:6.1.1-3ubuntu5) ...
Selecting previously unselected package libvidstab1.1:amd64.
Preparing to unpack .../070-libvidstab1.1_1.1.0-2build1_amd64.deb ...
Unpacking libvidstab1.1:amd64 (1.1.0-2build1) ...
Selecting previously unselected package libzimg2:amd64.
Preparing to unpack .../071-libzimg2_3.0.5+ds1-1build1_amd64.deb ...
Unpacking libzimg2:amd64 (3.0.5+ds1-1build1) ...
Selecting previously unselected package libavfilter9:amd64.
Preparing to unpack .../072-libavfilter9_7%3a6.1.1-3ubuntu5_amd64.deb ...
Unpacking libavfilter9:amd64 (7:6.1.1-3ubuntu5) ...
Selecting previously unselected package libcaca0:amd64.
Preparing to unpack .../073-libcaca0_0.99.beta20-4build2_amd64.deb ...
Unpacking libcaca0:amd64 (0.99.beta20-4build2) ...
Selecting previously unselected package libcdio19t64:amd64.
Preparing to unpack .../074-libcdio19t64_2.1.0-4.1ubuntu1.2_amd64.deb ...
Unpacking libcdio19t64:amd64 (2.1.0-4.1ubuntu1.2) ...
Selecting previously unselected package libcdio-cdda2t64:amd64.
Preparing to unpack .../075-libcdio-cdda2t64_10.2+2.0.1-1.1build2_amd64.deb ...
Unpacking libcdio-cdda2t64:amd64 (10.2+2.0.1-1.1build2) ...
Selecting previously unselected package libcdio-paranoia2t64:amd64.
Preparing to unpack .../076-libcdio-paranoia2t64_10.2+2.0.1-1.1build2_amd64.deb ...
Unpacking libcdio-paranoia2t64:amd64 (10.2+2.0.1-1.1build2) ...
Selecting previously unselected package libdc1394-25:amd64.
Preparing to unpack .../077-libdc1394-25_2.2.6-4build1_amd64.deb ...
Unpacking libdc1394-25:amd64 (2.2.6-4build1) ...
Selecting previously unselected package libiec61883-0:amd64.
Preparing to unpack .../078-libiec61883-0_1.2.0-6build1_amd64.deb ...
Unpacking libiec61883-0:amd64 (1.2.0-6build1) ...
Selecting previously unselected package libjack-jackd2-0:amd64.
Preparing to unpack .../079-libjack-jackd2-0_1.9.21~dfsg-3ubuntu3_amd64.deb ...
Unpacking libjack-jackd2-0:amd64 (1.9.21~dfsg-3ubuntu3) ...
Selecting previously unselected package libopenal-data.
Preparing to unpack .../080-libopenal-data_1%3a1.23.1-4build1_all.deb ...
Unpacking libopenal-data (1:1.23.1-4build1) ...
Selecting previously unselected package libsndio7.0:amd64.
Preparing to unpack .../081-libsndio7.0_1.9.0-0.3build3_amd64.deb ...
Unpacking libsndio7.0:amd64 (1.9.0-0.3build3) ...
Selecting previously unselected package libopenal1:amd64.
Preparing to unpack .../082-libopenal1_1%3a1.23.1-4build1_amd64.deb ...
Unpacking libopenal1:amd64 (1:1.23.1-4build1) ...
Selecting previously unselected package libdecor-0-0:amd64.
Preparing to unpack .../083-libdecor-0-0_0.2.2-1build2_amd64.deb ...
Unpacking libdecor-0-0:amd64 (0.2.2-1build2) ...
Selecting previously unselected package libsdl2-2.0-0:amd64.
Preparing to unpack .../084-libsdl2-2.0-0_2.30.0+dfsg-1build3_amd64.deb ...
Unpacking libsdl2-2.0-0:amd64 (2.30.0+dfsg-1build3) ...
Selecting previously unselected package libxcb-shape0:amd64.
Preparing to unpack .../085-libxcb-shape0_1.15-1ubuntu2_amd64.deb ...
Unpacking libxcb-shape0:amd64 (1.15-1ubuntu2) ...
Selecting previously unselected package libxv1:amd64.
Preparing to unpack .../086-libxv1_2%3a1.0.11-1.1build1_amd64.deb ...
Unpacking libxv1:amd64 (2:1.0.11-1.1build1) ...
Selecting previously unselected package libavdevice60:amd64.
Preparing to unpack .../087-libavdevice60_7%3a6.1.1-3ubuntu5_amd64.deb ...
Unpacking libavdevice60:amd64 (7:6.1.1-3ubuntu5) ...
Selecting previously unselected package libboost-thread1.83.0:amd64.
Preparing to unpack .../088-libboost-thread1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ...
Unpacking libboost-thread1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...
Selecting previously unselected package libboost-locale1.83.0:amd64.
Preparing to unpack .../089-libboost-locale1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ...
Unpacking libboost-locale1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...
Selecting previously unselected package libtbbmalloc2:amd64.
Preparing to unpack .../090-libtbbmalloc2_2021.11.0-2ubuntu2_amd64.deb ...
Unpacking libtbbmalloc2:amd64 (2021.11.0-2ubuntu2) ...
Selecting previously unselected package libhwloc15:amd64.
Preparing to unpack .../091-libhwloc15_2.10.0-1build1_amd64.deb ...
Unpacking libhwloc15:amd64 (2.10.0-1build1) ...
Selecting previously unselected package libtbbbind-2-5:amd64.
Preparing to unpack .../092-libtbbbind-2-5_2021.11.0-2ubuntu2_amd64.deb ...
Unpacking libtbbbind-2-5:amd64 (2021.11.0-2ubuntu2) ...
Selecting previously unselected package libtbb12:amd64.
Preparing to unpack .../093-libtbb12_2021.11.0-2ubuntu2_amd64.deb ...
Unpacking libtbb12:amd64 (2021.11.0-2ubuntu2) ...
Selecting previously unselected package libembree4-4:amd64.
Preparing to unpack .../094-libembree4-4_4.3.0+dfsg-2_amd64.deb ...
Unpacking libembree4-4:amd64 (4.3.0+dfsg-2) ...
Selecting previously unselected package libfftw3-single3:amd64.
Preparing to unpack .../095-libfftw3-single3_3.3.10-1ubuntu3_amd64.deb ...
Unpacking libfftw3-single3:amd64 (3.3.10-1ubuntu3) ...
Selecting previously unselected package libimath-3-1-29t64:amd64.
Preparing to unpack .../096-libimath-3-1-29t64_3.1.9-3.1ubuntu2_amd64.deb ...
Unpacking libimath-3-1-29t64:amd64 (3.1.9-3.1ubuntu2) ...
Selecting previously unselected package libjemalloc2:amd64.
Preparing to unpack .../097-libjemalloc2_5.3.0-2build1_amd64.deb ...
Unpacking libjemalloc2:amd64 (5.3.0-2build1) ...
Selecting previously unselected package libpystring0:amd64.
Preparing to unpack .../098-libpystring0_1.1.4-1build1_amd64.deb ...
Unpacking libpystring0:amd64 (1.1.4-1build1) ...
Selecting previously unselected package libyaml-cpp0.8:amd64.
Preparing to unpack .../099-libyaml-cpp0.8_0.8.0+dfsg-6build1_amd64.deb ...
Unpacking libyaml-cpp0.8:amd64 (0.8.0+dfsg-6build1) ...
Selecting previously unselected package libopencolorio2.1t64:amd64.
Preparing to unpack .../100-libopencolorio2.1t64_2.1.3+dfsg-1.1build3_amd64.deb ...
Unpacking libopencolorio2.1t64:amd64 (2.1.3+dfsg-1.1build3) ...
Selecting previously unselected package libopenexr-3-1-30:amd64.
Preparing to unpack .../101-libopenexr-3-1-30_3.1.5-5.1build3_amd64.deb ...
Unpacking libopenexr-3-1-30:amd64 (3.1.5-5.1build3) ...
Selecting previously unselected package libdcmtk17t64:amd64.
Preparing to unpack .../102-libdcmtk17t64_3.6.7-9.1build4_amd64.deb ...
Unpacking libdcmtk17t64:amd64 (3.6.7-9.1build4) ...
Selecting previously unselected package libgif7:amd64.
Preparing to unpack .../103-libgif7_5.2.2-1ubuntu1_amd64.deb ...
Unpacking libgif7:amd64 (5.2.2-1ubuntu1) ...
Selecting previously unselected package libopencv-core406t64:amd64.
Preparing to unpack .../104-libopencv-core406t64_4.6.0+dfsg-13.1ubuntu1_amd64.deb ...
Unpacking libopencv-core406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ...
Selecting previously unselected package libopencv-imgproc406t64:amd64.
Preparing to unpack .../105-libopencv-imgproc406t64_4.6.0+dfsg-13.1ubuntu1_amd64.deb ...
Unpacking libopencv-imgproc406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ...
Selecting previously unselected package libexif12:amd64.
Preparing to unpack .../106-libexif12_0.6.24-1build2_amd64.deb ...
Unpacking libexif12:amd64 (0.6.24-1build2) ...
Selecting previously unselected package libgphoto2-port12t64:amd64.
Preparing to unpack .../107-libgphoto2-port12t64_2.5.31-2.1build2_amd64.deb ...
Unpacking libgphoto2-port12t64:amd64 (2.5.31-2.1build2) ...
Selecting previously unselected package libgphoto2-6t64:amd64.
Preparing to unpack .../108-libgphoto2-6t64_2.5.31-2.1build2_amd64.deb ...
Unpacking libgphoto2-6t64:amd64 (2.5.31-2.1build2) ...
Selecting previously unselected package liborc-0.4-0t64:amd64.
Preparing to unpack .../109-liborc-0.4-0t64_1%3a0.4.38-1ubuntu0.1_amd64.deb ...
Unpacking liborc-0.4-0t64:amd64 (1:0.4.38-1ubuntu0.1) ...
Selecting previously unselected package libgstreamer-plugins-base1.0-0:amd64.
Preparing to unpack .../110-libgstreamer-plugins-base1.0-0_1.24.2-1ubuntu0.2_amd64.deb ...
Unpacking libgstreamer-plugins-base1.0-0:amd64 (1.24.2-1ubuntu0.2) ...
Selecting previously unselected package gdal-data.
Preparing to unpack .../111-gdal-data_3.8.4+dfsg-3ubuntu3_all.deb ...
Unpacking gdal-data (3.8.4+dfsg-3ubuntu3) ...
Selecting previously unselected package gdal-plugins:amd64.
Preparing to unpack .../112-gdal-plugins_3.8.4+dfsg-3ubuntu3_amd64.deb ...
Unpacking gdal-plugins:amd64 (3.8.4+dfsg-3ubuntu3) ...
Selecting previously unselected package libaec0:amd64.
Preparing to unpack .../113-libaec0_1.1.2-1build1_amd64.deb ...
Unpacking libaec0:amd64 (1.1.2-1build1) ...
Selecting previously unselected package libarpack2t64:amd64.
Preparing to unpack .../114-libarpack2t64_3.9.1-1.1build2_amd64.deb ...
Unpacking libarpack2t64:amd64 (3.9.1-1.1build2) ...
Selecting previously unselected package libsuperlu6:amd64.
Preparing to unpack .../115-libsuperlu6_6.0.1+dfsg1-1build1_amd64.deb ...
Unpacking libsuperlu6:amd64 (6.0.1+dfsg1-1build1) ...
Selecting previously unselected package libarmadillo12.
Preparing to unpack .../116-libarmadillo12_1%3a12.6.7+dfsg-1build2_amd64.deb ...
Unpacking libarmadillo12 (1:12.6.7+dfsg-1build2) ...
Selecting previously unselected package libblosc1:amd64.
Preparing to unpack .../117-libblosc1_1.21.5+ds-1build1_amd64.deb ...
Unpacking libblosc1:amd64 (1.21.5+ds-1build1) ...
Selecting previously unselected package libcfitsio10t64:amd64.
Preparing to unpack .../118-libcfitsio10t64_4.3.1-1.1build2_amd64.deb ...
Unpacking libcfitsio10t64:amd64 (4.3.1-1.1build2) ...
Selecting previously unselected package libminizip1t64:amd64.
Preparing to unpack .../119-libminizip1t64_1%3a1.3.dfsg-3.1ubuntu2.1_amd64.deb ...
Unpacking libminizip1t64:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
Selecting previously unselected package libfreexl1:amd64.
Preparing to unpack .../120-libfreexl1_2.0.0-1build2_amd64.deb ...
Unpacking libfreexl1:amd64 (2.0.0-1build2) ...
Selecting previously unselected package libfyba0t64:amd64.
Preparing to unpack .../121-libfyba0t64_4.1.1-11build1_amd64.deb ...
Unpacking libfyba0t64:amd64 (4.1.1-11build1) ...
Selecting previously unselected package libgeos3.12.1t64:amd64.
Preparing to unpack .../122-libgeos3.12.1t64_3.12.1-3build1_amd64.deb ...
Unpacking libgeos3.12.1t64:amd64 (3.12.1-3build1) ...
Selecting previously unselected package libgeos-c1t64:amd64.
Preparing to unpack .../123-libgeos-c1t64_3.12.1-3build1_amd64.deb ...
Unpacking libgeos-c1t64:amd64 (3.12.1-3build1) ...
Selecting previously unselected package proj-data.
Preparing to unpack .../124-proj-data_9.4.0-1build2_all.deb ...
Unpacking proj-data (9.4.0-1build2) ...
Selecting previously unselected package libproj25:amd64.
Preparing to unpack .../125-libproj25_9.4.0-1build2_amd64.deb ...
Unpacking libproj25:amd64 (9.4.0-1build2) ...
Selecting previously unselected package libgeotiff5:amd64.
Preparing to unpack .../126-libgeotiff5_1.7.1-5build1_amd64.deb ...
Unpacking libgeotiff5:amd64 (1.7.1-5build1) ...
Selecting previously unselected package libhdf4-0-alt:amd64.
Preparing to unpack .../127-libhdf4-0-alt_4.2.16-4build1_amd64.deb ...
Unpacking libhdf4-0-alt:amd64 (4.2.16-4build1) ...
Selecting previously unselected package libsz2:amd64.
Preparing to unpack .../128-libsz2_1.1.2-1build1_amd64.deb ...
Unpacking libsz2:amd64 (1.1.2-1build1) ...
Selecting previously unselected package libhdf5-103-1t64:amd64.
Preparing to unpack .../129-libhdf5-103-1t64_1.10.10+repack-3.1ubuntu4_amd64.deb ...
Unpacking libhdf5-103-1t64:amd64 (1.10.10+repack-3.1ubuntu4) ...
Selecting previously unselected package liburiparser1:amd64.
Preparing to unpack .../130-liburiparser1_0.9.7+dfsg-2build1_amd64.deb ...
Unpacking liburiparser1:amd64 (0.9.7+dfsg-2build1) ...
Selecting previously unselected package libkmlbase1t64:amd64.
Preparing to unpack .../131-libkmlbase1t64_1.3.0-12build1_amd64.deb ...
Unpacking libkmlbase1t64:amd64 (1.3.0-12build1) ...
Selecting previously unselected package libkmldom1t64:amd64.
Preparing to unpack .../132-libkmldom1t64_1.3.0-12build1_amd64.deb ...
Unpacking libkmldom1t64:amd64 (1.3.0-12build1) ...
Selecting previously unselected package libkmlengine1t64:amd64.
Preparing to unpack .../133-libkmlengine1t64_1.3.0-12build1_amd64.deb ...
Unpacking libkmlengine1t64:amd64 (1.3.0-12build1) ...
Selecting previously unselected package libhdf5-hl-100t64:amd64.
Preparing to unpack .../134-libhdf5-hl-100t64_1.10.10+repack-3.1ubuntu4_amd64.deb ...
Unpacking libhdf5-hl-100t64:amd64 (1.10.10+repack-3.1ubuntu4) ...
Selecting previously unselected package libnetcdf19t64:amd64.
Preparing to unpack .../135-libnetcdf19t64_1%3a4.9.2-5ubuntu4_amd64.deb ...
Unpacking libnetcdf19t64:amd64 (1:4.9.2-5ubuntu4) ...
Selecting previously unselected package unixodbc-common.
Preparing to unpack .../136-unixodbc-common_2.3.12-1ubuntu0.24.04.1_all.deb ...
Unpacking unixodbc-common (2.3.12-1ubuntu0.24.04.1) ...
Selecting previously unselected package libodbcinst2:amd64.
Preparing to unpack .../137-libodbcinst2_2.3.12-1ubuntu0.24.04.1_amd64.deb ...
Unpacking libodbcinst2:amd64 (2.3.12-1ubuntu0.24.04.1) ...
Selecting previously unselected package libogdi4.1:amd64.
Preparing to unpack .../138-libogdi4.1_4.1.1+ds-3build1_amd64.deb ...
Unpacking libogdi4.1:amd64 (4.1.1+ds-3build1) ...
Selecting previously unselected package libpoppler134:amd64.
Preparing to unpack .../139-libpoppler134_24.02.0-1ubuntu9.2_amd64.deb ...
Unpacking libpoppler134:amd64 (24.02.0-1ubuntu9.2) ...
Selecting previously unselected package libqhull-r8.0:amd64.
Preparing to unpack .../140-libqhull-r8.0_2020.2-6build1_amd64.deb ...
Unpacking libqhull-r8.0:amd64 (2020.2-6build1) ...
Selecting previously unselected package librttopo1:amd64.
Preparing to unpack .../141-librttopo1_1.1.0-3build2_amd64.deb ...
Unpacking librttopo1:amd64 (1.1.0-3build2) ...
Selecting previously unselected package libspatialite8t64:amd64.
Preparing to unpack .../142-libspatialite8t64_5.1.0-3build1_amd64.deb ...
Unpacking libspatialite8t64:amd64 (5.1.0-3build1) ...
Selecting previously unselected package libxerces-c3.2t64:amd64.
Preparing to unpack .../143-libxerces-c3.2t64_3.2.4+debian-1.2ubuntu2_amd64.deb ...
Unpacking libxerces-c3.2t64:amd64 (3.2.4+debian-1.2ubuntu2) ...
Selecting previously unselected package libgdal34t64:amd64.
Preparing to unpack .../144-libgdal34t64_3.8.4+dfsg-3ubuntu3_amd64.deb ...
Unpacking libgdal34t64:amd64 (3.8.4+dfsg-3ubuntu3) ...
Selecting previously unselected package libcharls2:amd64.
Preparing to unpack .../145-libcharls2_2.4.2-2build2_amd64.deb ...
Unpacking libcharls2:amd64 (2.4.2-2build2) ...
Selecting previously unselected package libsocket++1:amd64.
Preparing to unpack .../146-libsocket++1_1.12.13+git20131030.5d039ba-1build1_amd64.deb ...
Unpacking libsocket++1:amd64 (1.12.13+git20131030.5d039ba-1build1) ...
Selecting previously unselected package libgdcm3.0t64:amd64.
Preparing to unpack .../147-libgdcm3.0t64_3.0.22-2.1ubuntu1_amd64.deb ...
Unpacking libgdcm3.0t64:amd64 (3.0.22-2.1ubuntu1) ...
Selecting previously unselected package libopencv-imgcodecs406t64:amd64.
Preparing to unpack .../148-libopencv-imgcodecs406t64_4.6.0+dfsg-13.1ubuntu1_amd64.deb ...
Unpacking libopencv-imgcodecs406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ...
Selecting previously unselected package libopencv-videoio406t64:amd64.
Preparing to unpack .../149-libopencv-videoio406t64_4.6.0+dfsg-13.1ubuntu1_amd64.deb ...
Unpacking libopencv-videoio406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ...
Selecting previously unselected package libboost-iostreams1.83.0:amd64.
Preparing to unpack .../150-libboost-iostreams1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ...
Unpacking libboost-iostreams1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...
Selecting previously unselected package liblog4cplus-2.0.5t64:amd64.
Preparing to unpack .../151-liblog4cplus-2.0.5t64_2.0.8-1.1ubuntu3_amd64.deb ...
Unpacking liblog4cplus-2.0.5t64:amd64 (2.0.8-1.1ubuntu3) ...
Selecting previously unselected package libopenvdb10.0t64:amd64.
Preparing to unpack .../152-libopenvdb10.0t64_10.0.1-2.1build5_amd64.deb ...
Unpacking libopenvdb10.0t64:amd64 (10.0.1-2.1build5) ...
Selecting previously unselected package libopenimageio2.4t64:amd64.
Preparing to unpack .../153-libopenimageio2.4t64_2.4.17.0+dfsg-1.1build4_amd64.deb ...
Unpacking libopenimageio2.4t64:amd64 (2.4.17.0+dfsg-1.1build4) ...
Selecting previously unselected package libosdcpu3.5.0t64:amd64.
Preparing to unpack .../154-libosdcpu3.5.0t64_3.5.0-2.1build1_amd64.deb ...
Unpacking libosdcpu3.5.0t64:amd64 (3.5.0-2.1build1) ...
Selecting previously unselected package libosdgpu3.5.0t64:amd64.
Preparing to unpack .../155-libosdgpu3.5.0t64_3.5.0-2.1build1_amd64.deb ...
Unpacking libosdgpu3.5.0t64:amd64 (3.5.0-2.1build1) ...
Selecting previously unselected package libpotrace0:amd64.
Preparing to unpack .../156-libpotrace0_1.16-2build1_amd64.deb ...
Unpacking libpotrace0:amd64 (1.16-2build1) ...
Selecting previously unselected package libpugixml1v5:amd64.
Preparing to unpack .../157-libpugixml1v5_1.14-0.1build1_amd64.deb ...
Unpacking libpugixml1v5:amd64 (1.14-0.1build1) ...
Selecting previously unselected package libspnav0.
Preparing to unpack .../158-libspnav0_1.1-2_amd64.deb ...
Unpacking libspnav0 (1.1-2) ...
Selecting previously unselected package blender.
Preparing to unpack .../159-blender_4.0.2+dfsg-1ubuntu8_amd64.deb ...
Unpacking blender (4.0.2+dfsg-1ubuntu8) ...
Selecting previously unselected package libcdparanoia0:amd64.
Preparing to unpack .../160-libcdparanoia0_3.10.2+debian-14build3_amd64.deb ...
Unpacking libcdparanoia0:amd64 (3.10.2+debian-14build3) ...
Selecting previously unselected package libvisual-0.4-0:amd64.
Preparing to unpack .../161-libvisual-0.4-0_0.4.2-2build1_amd64.deb ...
Unpacking libvisual-0.4-0:amd64 (0.4.2-2build1) ...
Selecting previously unselected package gstreamer1.0-plugins-base:amd64.
Preparing to unpack .../162-gstreamer1.0-plugins-base_1.24.2-1ubuntu0.2_amd64.deb ...
Unpacking gstreamer1.0-plugins-base:amd64 (1.24.2-1ubuntu0.2) ...
Selecting previously unselected package libigdgmm12:amd64.
Preparing to unpack .../163-libigdgmm12_22.3.17+ds1-1_amd64.deb ...
Unpacking libigdgmm12:amd64 (22.3.17+ds1-1) ...
Selecting previously unselected package intel-media-va-driver:amd64.
Preparing to unpack .../164-intel-media-va-driver_24.1.0+dfsg1-1_amd64.deb ...
Unpacking intel-media-va-driver:amd64 (24.1.0+dfsg1-1) ...
Selecting previously unselected package libaacs0:amd64.
Preparing to unpack .../165-libaacs0_0.11.1-2build1_amd64.deb ...
Unpacking libaacs0:amd64 (0.11.1-2build1) ...
Selecting previously unselected package libbdplus0:amd64.
Preparing to unpack .../166-libbdplus0_0.2.0-3build1_amd64.deb ...
Unpacking libbdplus0:amd64 (0.2.0-3build1) ...
Selecting previously unselected package libdecor-0-plugin-1-gtk:amd64.
Preparing to unpack .../167-libdecor-0-plugin-1-gtk_0.2.2-1build2_amd64.deb ...
Unpacking libdecor-0-plugin-1-gtk:amd64 (0.2.2-1build2) ...
Selecting previously unselected package libgphoto2-l10n.
Preparing to unpack .../168-libgphoto2-l10n_2.5.31-2.1build2_all.deb ...
Unpacking libgphoto2-l10n (2.5.31-2.1build2) ...
Selecting previously unselected package librsvg2-common:amd64.
Preparing to unpack .../169-librsvg2-common_2.58.0+dfsg-1build1_amd64.deb ...
Unpacking librsvg2-common:amd64 (2.58.0+dfsg-1build1) ...
Selecting previously unselected package libxnvctrl0:amd64.
Preparing to unpack .../170-libxnvctrl0_510.47.03-0ubuntu4_amd64.deb ...
Unpacking libxnvctrl0:amd64 (510.47.03-0ubuntu4) ...
Selecting previously unselected package mesa-va-drivers:amd64.
Preparing to unpack .../171-mesa-va-drivers_24.0.9-0ubuntu0.3_amd64.deb ...
Unpacking mesa-va-drivers:amd64 (24.0.9-0ubuntu0.3) ...
Selecting previously unselected package mesa-vdpau-drivers:amd64.
Preparing to unpack .../172-mesa-vdpau-drivers_24.0.9-0ubuntu0.3_amd64.deb ...
Unpacking mesa-vdpau-drivers:amd64 (24.0.9-0ubuntu0.3) ...
Selecting previously unselected package i965-va-driver:amd64.
Preparing to unpack .../173-i965-va-driver_2.4.1+dfsg1-1build2_amd64.deb ...
Unpacking i965-va-driver:amd64 (2.4.1+dfsg1-1build2) ...
Selecting previously unselected package va-driver-all:amd64.
Preparing to unpack .../174-va-driver-all_2.20.0-2build1_amd64.deb ...
Unpacking va-driver-all:amd64 (2.20.0-2build1) ...
Selecting previously unselected package vdpau-driver-all:amd64.
Preparing to unpack .../175-vdpau-driver-all_1.5-2build1_amd64.deb ...
Unpacking vdpau-driver-all:amd64 (1.5-2build1) ...
Selecting previously unselected package libhwloc-plugins:amd64.
Preparing to unpack .../176-libhwloc-plugins_2.10.0-1build1_amd64.deb ...
Unpacking libhwloc-plugins:amd64 (2.10.0-1build1) ...
Selecting previously unselected package pocketsphinx-en-us.
Preparing to unpack .../177-pocketsphinx-en-us_0.8.0+real5prealpha+1-15ubuntu5_all.deb ...
Unpacking pocketsphinx-en-us (0.8.0+real5prealpha+1-15ubuntu5) ...
Selecting previously unselected package proj-bin.
Preparing to unpack .../178-proj-bin_9.4.0-1build2_amd64.deb ...
Unpacking proj-bin (9.4.0-1build2) ...
Setting up libgme0:amd64 (0.6.3-7build1) ...
Setting up libchromaprint1:amd64 (1.5.1-5) ...
Setting up libssh-gcrypt-4:amd64 (0.10.6-2build2) ...
Setting up libhwy1t64:amd64 (1.0.7-8.1build1) ...
Setting up libtbbmalloc2:amd64 (2021.11.0-2ubuntu2) ...
Setting up libudfread0:amd64 (1.1.2-1build1) ...
Setting up libcdparanoia0:amd64 (3.10.2+debian-14build3) ...
Setting up liblog4cplus-2.0.5t64:amd64 (2.0.8-1.1ubuntu3) ...
Setting up libraw1394-11:amd64 (2.1.2-2build3) ...
Setting up libfftw3-single3:amd64 (3.3.10-1ubuntu3) ...
Setting up libspeex1:amd64 (1.2.1-2ubuntu2.24.04.1) ...
Setting up proj-data (9.4.0-1build2) ...
Setting up libshine3:amd64 (3.1.1-2build1) ...
Setting up libcaca0:amd64 (0.99.beta20-4build2) ...
Setting up libvpl2 (2023.3.0-1build1) ...
Setting up libx264-164:amd64 (2:0.164.3108+git31e19f9-1) ...
Setting up libtwolame0:amd64 (0.4.0-2build3) ...
Setting up libmbedcrypto7t64:amd64 (2.28.8-1) ...
Setting up libproj25:amd64 (9.4.0-1build2) ...
Setting up libogdi4.1:amd64 (4.1.1+ds-3build1) ...
Setting up libpoppler134:amd64 (24.02.0-1ubuntu9.2) ...
Setting up libgsm1:amd64 (1.0.22-1build1) ...
Setting up libcharls2:amd64 (2.4.2-2build2) ...
Setting up libvisual-0.4-0:amd64 (0.4.2-2build1) ...
Setting up libgeos3.12.1t64:amd64 (3.12.1-3build1) ...
Setting up libsoxr0:amd64 (0.1.3-4build3) ...
Setting up libzix-0-0:amd64 (0.4.2-2build1) ...
Setting up libdcmtk17t64:amd64 (3.6.7-9.1build4) ...
Setting up libcodec2-1.2:amd64 (1.2.0-2build1) ...
Setting up libgeos-c1t64:amd64 (3.12.1-3build1) ...
Setting up libyaml-cpp0.8:amd64 (0.8.0+dfsg-6build1) ...
Setting up libmysofa1:amd64 (1.3.2+dfsg-2ubuntu2) ...
Setting up libxcb-shape0:amd64 (1.15-1ubuntu2) ...
Setting up libcdio19t64:amd64 (2.1.0-4.1ubuntu1.2) ...
Setting up libboost-thread1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...
Setting up proj-bin (9.4.0-1build2) ...
Setting up libqhull-r8.0:amd64 (2020.2-6build1) ...
Setting up libsvtav1enc1d1:amd64 (1.7.0+dfsg-2build1) ...
Setting up libigdgmm12:amd64 (22.3.17+ds1-1) ...
Setting up libjemalloc2:amd64 (5.3.0-2build1) ...
Setting up libmpg123-0t64:amd64 (1.32.5-1ubuntu1.1) ...
Setting up libxerces-c3.2t64:amd64 (3.2.4+debian-1.2ubuntu2) ...
Setting up libcjson1:amd64 (1.7.17-1) ...
Setting up libxvidcore4:amd64 (2:1.3.7-1build1) ...
Setting up libgphoto2-l10n (2.5.31-2.1build2) ...
Setting up librav1e0:amd64 (0.7.1-2) ...
Setting up libaec0:amd64 (1.1.2-1build1) ...
Setting up gdal-data (3.8.4+dfsg-3ubuntu3) ...
Setting up libpugixml1v5:amd64 (1.14-0.1build1) ...
Setting up libgeotiff5:amd64 (1.7.1-5build1) ...
Setting up poppler-data (0.4.12-1) ...
Setting up liborc-0.4-0t64:amd64 (1:0.4.38-1ubuntu0.1) ...
Setting up libcdio-cdda2t64:amd64 (10.2+2.0.1-1.1build2) ...
Setting up libxnvctrl0:amd64 (510.47.03-0ubuntu4) ...
Setting up librist4:amd64 (0.2.10+dfsg-2) ...
Setting up librsvg2-2:amd64 (2.58.0+dfsg-1build1) ...
Setting up libblas3:amd64 (3.12.0-3build1.1) ...
update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode
Setting up libplacebo338:amd64 (6.338.2-2build1) ...
Setting up libcfitsio10t64:amd64 (4.3.1-1.1build2) ...
Setting up libva2:amd64 (2.20.0-2build1) ...
Setting up libboost-iostreams1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...
Setting up libopus0:amd64 (1.4-1build1) ...
Setting up libexif12:amd64 (0.6.24-1build2) ...
Setting up libcdio-paranoia2t64:amd64 (10.2+2.0.1-1.1build2) ...
Setting up libdc1394-25:amd64 (2.2.6-4build1) ...
Setting up intel-media-va-driver:amd64 (24.1.0+dfsg1-1) ...
Setting up libxv1:amd64 (2:1.0.11-1.1build1) ...
Setting up libhwloc15:amd64 (2.10.0-1build1) ...
Setting up libimath-3-1-29t64:amd64 (3.1.9-3.1ubuntu2) ...
Setting up libunibreak5:amd64 (5.1-2build1) ...
Setting up unixodbc-common (2.3.12-1ubuntu0.24.04.1) ...
Setting up libsocket++1:amd64 (1.12.13+git20131030.5d039ba-1build1) ...
Setting up libaacs0:amd64 (0.11.1-2build1) ...
Setting up libjxl0.7:amd64 (0.7.0-10.2ubuntu6) ...
Setting up librsvg2-common:amd64 (2.58.0+dfsg-1build1) ...
Setting up pocketsphinx-en-us (0.8.0+real5prealpha+1-15ubuntu5) ...
Setting up libhdf4-0-alt:amd64 (4.2.16-4build1) ...
Setting up libx265-199:amd64 (3.5-2build1) ...
Setting up libosdcpu3.5.0t64:amd64 (3.5.0-2.1build1) ...
Setting up libsndio7.0:amd64 (1.9.0-0.3build3) ...
Setting up libgif7:amd64 (5.2.2-1ubuntu1) ...
Setting up liburiparser1:amd64 (0.9.7+dfsg-2build1) ...
Setting up libbdplus0:amd64 (0.2.0-3build1) ...
Setting up libvidstab1.1:amd64 (1.1.0-2build1) ...
Setting up libfyba0t64:amd64 (4.1.1-11build1) ...
Setting up libvpx9:amd64 (1.14.0-1ubuntu2.1) ...
Setting up librttopo1:amd64 (1.1.0-3build2) ...
Setting up libsrt1.5-gnutls:amd64 (1.5.3-1build2) ...
Setting up libflite1:amd64 (2.2-6build3) ...
Setting up libdav1d7:amd64 (1.4.1-1build1) ...
Setting up libva-drm2:amd64 (2.20.0-2build1) ...
Setting up blender-data (4.0.2+dfsg-1ubuntu8) ...
Setting up libminizip1t64:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
Setting up ocl-icd-libopencl1:amd64 (2.3.2-1build1) ...
Setting up libasyncns0:amd64 (0.8-6build4) ...
Setting up libvdpau1:amd64 (1.5-2build1) ...
Setting up libbs2b0:amd64 (3.1.0+dfsg-7build1) ...
Setting up libtheora0:amd64 (1.1.1+dfsg.1-16.1build3) ...
Setting up libblosc1:amd64 (1.21.5+ds-1build1) ...
Setting up libdecor-0-0:amd64 (0.2.2-1build2) ...
Setting up libzimg2:amd64 (3.0.5+ds1-1build1) ...
Setting up libopenal-data (1:1.23.1-4build1) ...
Setting up libpystring0:amd64 (1.1.4-1build1) ...
Setting up libgphoto2-port12t64:amd64 (2.5.31-2.1build2) ...
Setting up libflac12t64:amd64 (1.4.3+ds-2.1ubuntu2) ...
Setting up mesa-va-drivers:amd64 (24.0.9-0ubuntu0.3) ...
Setting up libbluray2:amd64 (1:1.3.4-1build1) ...
Setting up libkmlbase1t64:amd64 (1.3.0-12build1) ...
Setting up libsamplerate0:amd64 (0.2.2-4build1) ...
Setting up libva-x11-2:amd64 (2.20.0-2build1) ...
Setting up libdecor-0-plugin-1-gtk:amd64 (0.2.2-1build2) ...
Setting up libopenmpt0t64:amd64 (0.7.3-1.1build3) ...
Setting up libzvbi-common (0.2.42-2) ...
Setting up libmp3lame0:amd64 (3.100-6build1) ...
Setting up libsz2:amd64 (1.1.2-1build1) ...
Setting up i965-va-driver:amd64 (2.4.1+dfsg1-1build2) ...
Setting up libvorbisenc2:amd64 (1.3.7-1build3) ...
Setting up libspnav0 (1.1-2) ...
Setting up libiec61883-0:amd64 (1.2.0-6build1) ...
Setting up gdal-plugins:amd64 (3.8.4+dfsg-3ubuntu3) ...
Setting up libserd-0-0:amd64 (0.32.2-1) ...
Setting up libpotrace0:amd64 (1.16-2build1) ...
Setting up libavc1394-0:amd64 (0.5.4-5build3) ...
Setting up libgdcm3.0t64:amd64 (3.0.22-2.1ubuntu1) ...
Setting up mesa-vdpau-drivers:amd64 (24.0.9-0ubuntu0.3) ...
Setting up libosdgpu3.5.0t64:amd64 (3.5.0-2.1build1) ...
Setting up libodbcinst2:amd64 (2.3.12-1ubuntu0.24.04.1) ...
Setting up liblapack3:amd64 (3.12.0-3build1.1) ...
update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode
Setting up libarpack2t64:amd64 (3.9.1-1.1build2) ...
Setting up libzvbi0t64:amd64 (0.2.42-2) ...
Setting up libboost-locale1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...
Setting up libgstreamer-plugins-base1.0-0:amd64 (1.24.2-1ubuntu0.2) ...
Setting up libavutil58:amd64 (7:6.1.1-3ubuntu5) ...
Setting up libopenal1:amd64 (1:1.23.1-4build1) ...
Setting up libsuperlu6:amd64 (6.0.1+dfsg1-1build1) ...
Setting up libhwloc-plugins:amd64 (2.10.0-1build1) ...
Setting up libtbbbind-2-5:amd64 (2021.11.0-2ubuntu2) ...
Setting up libkmldom1t64:amd64 (1.3.0-12build1) ...
Setting up gstreamer1.0-plugins-base:amd64 (1.24.2-1ubuntu0.2) ...
Setting up libass9:amd64 (1:0.17.1-2build1) ...
Setting up libswresample4:amd64 (7:6.1.1-3ubuntu5) ...
Setting up va-driver-all:amd64 (2.20.0-2build1) ...
Setting up libgphoto2-6t64:amd64 (2.5.31-2.1build2) ...
No diversion 'diversion of /lib/udev/hwdb.d/20-libgphoto2-6.hwdb to /lib/udev/hwdb.d/20-libgphoto2-6.hwdb.usr-is-merged by usr-is-merged', none removed.
No diversion 'diversion of /lib/udev/rules.d/60-libgphoto2-6.rules to /lib/udev/rules.d/60-libgphoto2-6.rules.usr-is-merged by usr-is-merged', none removed.
Setting up libopencolorio2.1t64:amd64 (2.1.3+dfsg-1.1build3) ...
Setting up libopenexr-3-1-30:amd64 (3.1.5-5.1build3) ...
Setting up libavcodec60:amd64 (7:6.1.1-3ubuntu5) ...
Setting up librubberband2:amd64 (3.3.0+dfsg-2build1) ...
Setting up libjack-jackd2-0:amd64 (1.9.21~dfsg-3ubuntu3) ...
Setting up vdpau-driver-all:amd64 (1.5-2build1) ...
Setting up libfreexl1:amd64 (2.0.0-1build2) ...
Setting up libsord-0-0:amd64 (0.16.16-2build1) ...
Setting up libpostproc57:amd64 (7:6.1.1-3ubuntu5) ...
Setting up libsratom-0-0:amd64 (0.6.16-1build1) ...
Setting up libsndfile1:amd64 (1.2.2-1ubuntu5) ...
Setting up libhdf5-103-1t64:amd64 (1.10.10+repack-3.1ubuntu4) ...
Setting up liblilv-0-0:amd64 (0.24.22-1build1) ...
Setting up libarmadillo12 (1:12.6.7+dfsg-1build2) ...
Setting up libswscale7:amd64 (7:6.1.1-3ubuntu5) ...
Setting up libspatialite8t64:amd64 (5.1.0-3build1) ...
Setting up libhdf5-hl-100t64:amd64 (1.10.10+repack-3.1ubuntu4) ...
Setting up libnetcdf19t64:amd64 (1:4.9.2-5ubuntu4) ...
Setting up libpulse0:amd64 (1:16.1+dfsg1-2ubuntu10.1) ...
Setting up libtbb12:amd64 (2021.11.0-2ubuntu2) ...
Setting up libavformat60:amd64 (7:6.1.1-3ubuntu5) ...
Setting up libkmlengine1t64:amd64 (1.3.0-12build1) ...
Setting up libsphinxbase3t64:amd64 (0.8+5prealpha+1-17build2) ...
Setting up libgdal34t64:amd64 (3.8.4+dfsg-3ubuntu3) ...
Setting up libembree4-4:amd64 (4.3.0+dfsg-2) ...
Setting up libsdl2-2.0-0:amd64 (2.30.0+dfsg-1build3) ...
Setting up libopencv-core406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ...
Setting up libopenvdb10.0t64:amd64 (10.0.1-2.1build5) ...
Setting up libpocketsphinx3:amd64 (0.8.0+real5prealpha+1-15ubuntu5) ...
Setting up libopencv-imgproc406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ...
Setting up libopencv-imgcodecs406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ...
Setting up libavfilter9:amd64 (7:6.1.1-3ubuntu5) ...
Setting up libopencv-videoio406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ...
Setting up libavdevice60:amd64 (7:6.1.1-3ubuntu5) ...
Setting up libopenimageio2.4t64:amd64 (2.4.17.0+dfsg-1.1build4) ...
Setting up blender (4.0.2+dfsg-1ubuntu8) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for udev (255.4-1ubuntu8.4) ...
Processing triggers for libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3.1) ...
Processing triggers for fontconfig (2.15.0-1.1ubuntu2) ...

Running kernel seems to be up-to-date.

Restarting services...

Service restarts being deferred:
 systemctl restart runner-provisioner.service

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/apps/spiral/temp/blender
polyglot/scripts/core.ps1/GetFullPath / Path: ./build.py / Location: /home/runner/work/polyglot/polyglot/apps/spiral/temp/blender / ResolvedLocation: /home/runner/work/polyglot/polyglot/apps/spiral/temp/blender
polyglot/scripts/core.ps1/GetFullPath / FullPath: /home/runner/work/polyglot/polyglot/apps/spiral/temp/blender/build.py
blender / Path: /home/runner/work/polyglot/polyglot/apps/spiral/temp/blender/build.py
Blender 4.0.2
Fra:1 Mem:9.24M (Peak 9.24M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Synchronizing object | Cube
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Initializing
Fra:1 Mem:9.15M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Waiting for render to start
Fra:1 Mem:9.15M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Loading render kernels (may take a few minutes the first time)
Fra:1 Mem:9.15M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Scene
Fra:1 Mem:9.15M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Shaders
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Procedurals
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Background
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Camera
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Meshes Flags
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects | Copying Transformations to device
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects | Applying Static Transformations
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Particle Systems
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Particle Systems | Copying Particles to device
Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Meshes
Fra:1 Mem:9.25M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Mesh | Computing attributes
Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Mesh | Copying Attributes to device
Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.01M, Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building
Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.01M, Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building BVH
Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.04M, Peak:0.04M | Scene, ViewLayer | Updating Scene BVH | Building BVH 0%
Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.07M, Peak:0.10M | Scene, ViewLayer | Updating Scene BVH | Copying BVH to device
Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.07M, Peak:0.10M | Scene, ViewLayer | Updating Mesh | Computing normals
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.07M, Peak:0.10M | Scene, ViewLayer | Updating Mesh | Copying Mesh to device
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Objects Flags
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Primitive Offsets
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Images
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Camera Volume
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Lookup Tables
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Lights
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Lights | Computing distribution
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Lights | Computing tree
Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Integrator
Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.19M, Peak:16.19M | Scene, ViewLayer | Updating Film
Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.11M, Peak:16.19M | Scene, ViewLayer | Updating Lookup Tables
Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.19M, Peak:16.19M | Scene, ViewLayer | Updating Baking
Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.19M, Peak:16.19M | Scene, ViewLayer | Updating Device | Writing constant memory
Build without OpenImageDenoiser
Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.19M, Peak:16.19M | Scene, ViewLayer | Build without OpenImageDenoiser
No device available to denoise on
Traceback (most recent call last):
  File "/home/runner/work/polyglot/polyglot/apps/spiral/temp/blender/build.py", line 54, in <module>
    bpy.ops.render.render(write_still=True)
  File "/usr/share/blender/scripts/modules/bpy/ops.py", line 109, in __call__
    ret = _op_call(self.idname_py(), kw)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error: Build without OpenImageDenoiser
Error: Build without OpenImageDenoiser

Error: Build without OpenImageDenoiser
Error: Build without OpenImageDenoiser
Blender quit
In [ ]:
{ pwsh ../apps/spiral/vscode/build.ps1 } | Invoke-Block
bun install v1.2.0 (b0c5a765)

+ @types/node@22.10.10
+ @types/vscode@1.96.0
+ @vscode/vsce@3.2.1
+ npm-check-updates@17.1.14
+ typescript@5.5.0-dev.20240514
+ vscode@1.1.37

225 packages installed [976.00ms]

Blocked 1 postinstall. Run `bun pm untrusted` for details.
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/apps/spiral/vscode
polyglot/scripts/core.ps1/GetFullPath / Path: ./LICENSE / Location: /home/runner/work/polyglot/polyglot/apps/spiral/vscode / ResolvedLocation: /home/runner/work/polyglot/polyglot/apps/spiral/vscode
polyglot/scripts/core.ps1/GetFullPath / FullPath: /home/runner/work/polyglot/polyglot/apps/spiral/vscode/LICENSE
polyglot/scripts/core.ps1/EnsureSymbolicLink / Parent: /home/runner/work/polyglot/polyglot/apps/spiral/vscode / Path: /home/runner/work/polyglot/polyglot/apps/spiral/vscode/LICENSE
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/apps/spiral/vscode
polyglot/scripts/core.ps1/GetFullPath / Path: ../../../LICENSE / Location: /home/runner/work/polyglot/polyglot/apps/spiral/vscode / ResolvedLocation: /home/runner/work/polyglot/polyglot/apps/spiral/vscode
polyglot/scripts/core.ps1/GetFullPath / FullPath: /home/runner/work/polyglot/polyglot/LICENSE
polyglot/scripts/core.ps1/ResolveLink #2 / parent:  / Path: /home / End: runner/work/polyglot/polyglot/LICENSE
polyglot/scripts/core.ps1/EnsureSymbolicLink / FullPath: /home/runner/work/polyglot/polyglot/apps/spiral/vscode/LICENSE / Target: /home/runner/work/polyglot/polyglot/LICENSE / ResolvedTarget: /home/runner/work/polyglot/polyglot/LICENSE
polyglot/scripts/core.ps1/EnsureSymbolicLink / Creating symlink: /home/runner/work/polyglot/polyglot/apps/spiral/vscode/LICENSE -> /home/runner/work/polyglot/polyglot/LICENSE

  out/src/extension.js                  2.4kb
  out/media/cellOutputScrollButtons.js  1.9kb

⚡ Done in 4ms
::warning::Neither a .vscodeignore file nor a "files" property in package.json was found. To ensure only necessary files are included in your extension, add a .vscodeignore file or specify the "files" property in package.json. More info: https://aka.ms/vscode-vscodeignore%0A
Files included in the VSIX:
spiral-vscode-0.0.1.vsix
├─ [Content_Types].xml 
├─ extension.vsixmanifest 
└─ extension/
   ├─ .gitignore [0.01 KB]
   ├─ LICENSE.txt [33.71 KB]
   ├─ build.ps1 [0.37 KB]
   ├─ bun.lockb [86.98 KB]
   ├─ compile.ps1 [0.44 KB]
   ├─ package.json [1.55 KB]
   ├─ media/
   │  └─ cellOutputScrollButtons.ts [1.8 KB]
   ├─ out/
   │  ├─ media/
   │  │  └─ cellOutputScrollButtons.js [1.86 KB]
   │  └─ src/
   │     └─ extension.js [2.44 KB]
   └─ src/
      └─ extension.ts [1.38 KB]

Packaged: out/spiral-vscode-0.0.1.vsix (12 files, 49.02 KB)
In [ ]:
{ pwsh ../apps/ipfs/build.ps1 } | Invoke-Block
bun install v1.2.0 (b0c5a765)

+ @types/node@22.10.10
+ npm-check-updates@17.1.14
+ typescript@5.5.0-dev.20240401
+ nft.storage@7.2.0

220 packages installed [550.00ms]

Blocked 1 postinstall. Run `bun pm untrusted` for details.
In [ ]:
{ pwsh ./outdated.ps1 } | Invoke-Block
Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0
Resolving dependency graph...
Outdated packages found:
  Group: Main
    * Argu 6.2.4 -> 6.2.5
    * Expecto 11.0.0-alpha2 -> 11.0.0-alpha4
    * Expecto.FsCheck 11.0.0-alpha2 -> 11.0.0-alpha4-fscheck2
    * FsCheck 3.0.0-rc3 -> 2.16.6
    * Microsoft.AspNetCore.Connections.Abstractions 7.0 -> 9.0.1
    * Microsoft.AspNetCore.Http.Connections.Client 7.0 -> 9.0.1
    * Microsoft.AspNetCore.Http.Connections.Common 7.0 -> 9.0.1
    * Microsoft.AspNetCore.SignalR.Client 7.0 -> 9.0.1
    * Microsoft.AspNetCore.SignalR.Client.Core 7.0 -> 9.0.1
    * Microsoft.AspNetCore.SignalR.Common 7.0 -> 9.0.1
    * Microsoft.AspNetCore.SignalR.Protocols.Json 7.0 -> 9.0.1
    * Microsoft.Bcl.AsyncInterfaces 9.0 -> 9.0.1
    * Microsoft.Extensions.DependencyInjection 9.0 -> 9.0.1
    * Microsoft.Extensions.DependencyInjection.Abstractions 9.0 -> 9.0.1
    * Microsoft.Extensions.Features 7.0 -> 9.0.1
    * Microsoft.Extensions.Logging 9.0 -> 9.0.1
    * Microsoft.Extensions.Logging.Abstractions 9.0 -> 9.0.1
    * Microsoft.Extensions.Options 9.0 -> 9.0.1
    * Microsoft.Extensions.Primitives 9.0 -> 9.0.1
    * System.CodeDom 9.0 -> 9.0.1
    * System.Configuration.ConfigurationManager 9.0 -> 9.0.1
    * System.Diagnostics.EventLog 9.0 -> 9.0.1
    * System.Management 7.0 -> 9.0.1
    * System.Security.Cryptography.ProtectedData 9.0 -> 9.0.1
    * System.Threading.Channels 9.0 -> 9.0.1
Total time taken: 12 seconds

CheckToml / toml: /home/runner/work/polyglot/polyglot/workspace/Cargo.toml
chat_contract_tests
================
Name                Project  Compat   Latest   Kind    Platform
----                -------  ------   ------   ----    --------
equivalent          1.0.1    Removed  Removed  Normal  ---
hashbrown           0.15.2   0.12.3   0.12.3   Normal  ---
indexmap            2.7.0    1.9.3    1.9.3    Normal  ---
near-sandbox-utils  0.9.0    0.8.0    0.8.0    Normal  ---

CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/chat/contract/Cargo.toml
Name                                               Project  Compat   Latest   Kind    Platform
----                                               -------  ------   ------   ----    --------
android_system_properties->libc                    0.2.168  0.2.169  0.2.169  Normal  ---
borsh                                              1.5.3    1.5.5    1.5.5    Normal  ---
borsh->borsh-derive                                1.5.3    1.5.5    1.5.5    Normal  ---
borsh-derive->proc-macro2                          1.0.92   1.0.93   1.0.93   Normal  ---
borsh-derive->quote                                1.0.37   1.0.38   1.0.38   Normal  ---
borsh-derive->syn                                  2.0.90   2.0.96   2.0.96   Normal  ---
bs58->tinyvec                                      1.8.0    1.8.1    1.8.1    Normal  ---
cc->libc                                           0.2.168  0.2.169  0.2.169  Normal  cfg(unix)
chrono->js-sys                                     0.3.76   0.3.77   0.3.77   Normal  cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
chrono->serde                                      1.0.216  1.0.217  1.0.217  Normal  ---
chrono->wasm-bindgen                               0.2.99   0.2.100  0.2.100  Normal  cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
cpufeatures->libc                                  0.2.168  0.2.169  0.2.169  Normal  aarch64-linux-android
darling_core->proc-macro2                          1.0.92   1.0.93   1.0.93   Normal  ---
darling_core->quote                                1.0.37   1.0.38   1.0.38   Normal  ---
darling_core->syn                                  2.0.90   2.0.96   2.0.96   Normal  ---
darling_macro->quote                               1.0.37   1.0.38   1.0.38   Normal  ---
darling_macro->syn                                 2.0.90   2.0.96   2.0.96   Normal  ---
data-encoding-macro->data-encoding                 2.6.0    2.7.0    2.7.0    Normal  ---
data-encoding-macro->data-encoding-macro-internal  0.1.13   0.1.14   0.1.14   Normal  ---
data-encoding-macro-internal->data-encoding        2.6.0    2.7.0    2.7.0    Normal  ---
data-encoding-macro-internal->syn                  1.0.109  2.0.96   2.0.96   Normal  ---
fable_library_rust->uuid                           1.11.0   1.12.1   1.12.1   Normal  ---
futures-macro->proc-macro2                         1.0.92   1.0.93   1.0.93   Normal  ---
futures-macro->quote                               1.0.37   1.0.38   1.0.38   Normal  ---
futures-macro->syn                                 2.0.90   2.0.96   2.0.96   Normal  ---
futures-util->pin-project-lite                     0.2.15   0.2.16   0.2.16   Normal  ---
getrandom->js-sys                                  0.3.76   0.3.77   0.3.77   Normal  cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
getrandom->libc                                    0.2.168  0.2.169  0.2.169  Normal  cfg(unix)
getrandom->wasm-bindgen                            0.2.99   0.2.100  0.2.100  Normal  cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
iana-time-zone->js-sys                             0.3.76   0.3.77   0.3.77   Normal  cfg(all(target_arch = "wasm32", target_os = "unknown"))
iana-time-zone->wasm-bindgen                       0.2.99   0.2.100  0.2.100  Normal  cfg(all(target_arch = "wasm32", target_os = "unknown"))
iana-time-zone-haiku->cc                           1.2.4    1.2.10   1.2.10   Build   ---
indexmap->serde                                    1.0.216  1.0.217  1.0.217  Normal  ---
jobserver->libc                                    0.2.168  0.2.169  0.2.169  Normal  cfg(unix)
js-sys->wasm-bindgen                               0.2.99   0.2.100  0.2.100  Normal  ---
multibase->data-encoding                           2.6.0    2.7.0    2.7.0    Normal  ---
multibase->data-encoding-macro                     0.1.15   0.1.16   0.1.16   Normal  ---
near-account-id->borsh                             1.5.3    1.5.5    1.5.5    Normal  ---
near-account-id->serde                             1.0.216  1.0.217  1.0.217  Normal  ---
near-gas->borsh                                    1.5.3    1.5.5    1.5.5    Normal  ---
near-gas->serde                                    1.0.216  1.0.217  1.0.217  Normal  ---
near-sdk                                           5.6.0    5.7.0    5.7.0    Normal  ---
near-sdk->borsh                                    1.5.3    1.5.5    1.5.5    Normal  ---
near-sdk->near-sdk-macros                          5.6.0    5.7.0    5.7.0    Normal  ---
near-sdk->serde                                    1.0.216  1.0.217  1.0.217  Normal  ---
near-sdk->serde_json                               1.0.133  1.0.137  1.0.137  Normal  ---
near-sdk-macros->proc-macro2                       1.0.92   1.0.93   1.0.93   Normal  ---
near-sdk-macros->quote                             1.0.37   1.0.38   1.0.38   Normal  ---
near-sdk-macros->serde                             1.0.216  1.0.217  1.0.217  Normal  ---
near-sdk-macros->serde_json                        1.0.133  1.0.137  1.0.137  Normal  ---
near-sdk-macros->syn                               2.0.90   2.0.96   2.0.96   Normal  ---
near-token->borsh                                  1.5.3    1.5.5    1.5.5    Normal  ---
near-token->serde                                  1.0.216  1.0.217  1.0.217  Normal  ---
num_cpus->libc                                     0.2.168  0.2.169  0.2.169  Normal  cfg(not(windows))
proc-macro2->unicode-ident                         1.0.14   1.0.15   1.0.15   Normal  ---
quote->proc-macro2                                 1.0.92   1.0.93   1.0.93   Normal  ---
serde->serde_derive                                1.0.216  1.0.217  1.0.217  Normal  ---
serde_derive->proc-macro2                          1.0.92   1.0.93   1.0.93   Normal  ---
serde_derive->quote                                1.0.37   1.0.38   1.0.38   Normal  ---
serde_derive->syn                                  2.0.90   2.0.96   2.0.96   Normal  ---
serde_json->serde                                  1.0.216  1.0.217  1.0.217  Normal  ---
serde_spanned->serde                               1.0.216  1.0.217  1.0.217  Normal  ---
sha2->cpufeatures                                  0.2.16   0.2.17   0.2.17   Normal  cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86"))
strum_macros->proc-macro2                          1.0.92   1.0.93   1.0.93   Normal  ---
strum_macros->quote                                1.0.37   1.0.38   1.0.38   Normal  ---
strum_macros->rustversion                          1.0.18   1.0.19   1.0.19   Normal  ---
strum_macros->syn                                  2.0.90   2.0.96   2.0.96   Normal  ---
syn->proc-macro2                                   1.0.92   1.0.93   1.0.93   Normal  ---
syn->quote                                         1.0.37   1.0.38   1.0.38   Normal  ---
syn->unicode-ident                                 1.0.14   1.0.15   1.0.15   Normal  ---
toml_datetime->serde                               1.0.216  1.0.217  1.0.217  Normal  ---
toml_edit->indexmap                                2.7.0    2.7.1    2.7.1    Normal  ---
toml_edit->serde                                   1.0.216  1.0.217  1.0.217  Normal  ---
toml_edit->winnow                                  0.6.20   0.6.24   0.6.24   Normal  ---
wasm-bindgen->wasm-bindgen-macro                   0.2.99   0.2.100  0.2.100  Normal  ---
wasm-bindgen-backend->log                          0.4.22   0.4.25   0.4.25   Normal  ---
wasm-bindgen-backend->proc-macro2                  1.0.92   1.0.93   1.0.93   Normal  ---
wasm-bindgen-backend->quote                        1.0.37   1.0.38   1.0.38   Normal  ---
wasm-bindgen-backend->syn                          2.0.90   2.0.96   2.0.96   Normal  ---
wasm-bindgen-backend->wasm-bindgen-shared          0.2.99   0.2.100  0.2.100  Normal  ---
wasm-bindgen-macro->quote                          1.0.37   1.0.38   1.0.38   Normal  ---
wasm-bindgen-macro->wasm-bindgen-macro-support     0.2.99   0.2.100  0.2.100  Normal  ---
wasm-bindgen-macro-support->proc-macro2            1.0.92   1.0.93   1.0.93   Normal  ---
wasm-bindgen-macro-support->quote                  1.0.37   1.0.38   1.0.38   Normal  ---
wasm-bindgen-macro-support->syn                    2.0.90   2.0.96   2.0.96   Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-backend   0.2.99   0.2.100  0.2.100  Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-shared    0.2.99   0.2.100  0.2.100  Normal  ---
wee_alloc->libc                                    0.2.168  0.2.169  0.2.169  Normal  cfg(all(unix, not(target_arch = "wasm32")))

CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/chat/contract/tests/Cargo.toml
Name                                              Project                        Compat   Latest   Kind         Platform
----                                              -------                        ------   ------   ----         --------
actix->bitflags                                   2.6.0                          2.8.0    2.8.0    Normal       ---
actix->log                                        0.4.22                         0.4.25   0.4.25   Normal       ---
actix->pin-project-lite                           0.2.15                         0.2.16   0.2.16   Normal       ---
actix->tokio                                      1.42.0                         1.43.0   1.43.0   Normal       ---
actix-macros->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
actix-macros->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
actix-rt->tokio                                   1.42.0                         1.43.0   1.43.0   Normal       ---
actix_derive->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
actix_derive->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
actix_derive->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
aes->cpufeatures                                  0.2.16                         0.2.17   0.2.17   Normal       cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86"))
ahash->getrandom                                  0.2.15                         Removed  ---      Normal       cfg(any(target_os = "linux", target_os = "android", target_os = "windows", target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonfly", target_os = "solaris", target_os = "illumos", target_os = "fuchsia", target_os = "redox", target_os = "cloudabi", target_os = "haiku", target_os = "vxworks", target_os = "emscripten", target_os = "wasi"))
ahash->once_cell                                  1.20.2                         Removed  ---      Normal       cfg(not(all(target_arch = "arm", target_os = "none")))
ahash->version_check                              0.9.5                          Removed  ---      Build        ---
android_system_properties->libc                   0.2.168                        0.2.169  0.2.169  Normal       ---
anstream->anstyle-wincon                          3.0.6                          3.0.7    3.0.7    Normal       cfg(windows)
anyhow                                            1.0.94                         1.0.95   1.0.95   Normal       ---
async-channel->pin-project-lite                   0.2.15                         0.2.16   0.2.16   Normal       ---
async-executor->futures-lite                      2.5.0                          2.6.0    2.6.0    Normal       ---
async-io->futures-lite                            2.5.0                          2.6.0    2.6.0    Normal       ---
async-io->log                                     0.4.22                         0.4.25   0.4.25   Normal       ---
async-io->rustix                                  0.37.27                        0.37.28  0.37.28  Normal       ---
async-io->rustix                                  0.38.42                        0.38.44  0.38.44  Normal       ---
async-lock->event-listener                        5.3.1                          5.4.0    5.4.0    Normal       ---
async-lock->pin-project-lite                      0.2.15                         0.2.16   0.2.16   Normal       ---
async-process->rustix                             0.38.42                        0.38.44  0.38.44  Normal       cfg(unix)
async-recursion->proc-macro2                      1.0.92                         1.0.93   1.0.93   Normal       ---
async-recursion->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
async-recursion->syn                              2.0.90                         2.0.96   2.0.96   Normal       ---
async-signal->rustix                              0.38.42                        0.38.44  0.38.44  Normal       cfg(unix)
async-stream->pin-project-lite                    0.2.15                         0.2.16   0.2.16   Normal       ---
async-stream-impl->proc-macro2                    1.0.92                         1.0.93   1.0.93   Normal       ---
async-stream-impl->quote                          1.0.37                         1.0.38   1.0.38   Normal       ---
async-stream-impl->syn                            2.0.90                         2.0.96   2.0.96   Normal       ---
async-trait->proc-macro2                          1.0.92                         1.0.93   1.0.93   Normal       ---
async-trait->quote                                1.0.37                         1.0.38   1.0.38   Normal       ---
async-trait->syn                                  2.0.90                         2.0.96   2.0.96   Normal       ---
atty->libc                                        0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
axum->async-trait                                 0.1.83                         0.1.85   0.1.85   Normal       ---
axum->hyper                                       0.14.31                        0.14.32  0.14.32  Normal       ---
axum->pin-project-lite                            0.2.15                         0.2.16   0.2.16   Normal       ---
axum->rustversion                                 1.0.18                         1.0.19   1.0.19   Development  ---
axum->serde                                       1.0.216                        1.0.217  1.0.217  Normal       ---
axum-core->async-trait                            0.1.83                         0.1.85   0.1.85   Normal       ---
axum-core->rustversion                            1.0.18                         1.0.19   1.0.19   Build        ---
backtrace->cc                                     1.2.4                          1.2.10   1.2.10   Build        ---
backtrace->libc                                   0.2.168                        0.2.169  0.2.169  Normal       cfg(not(all(windows, target_env = "msvc", not(target_vendor = "uwp"))))
binary-install->anyhow                            1.0.94                         1.0.95   1.0.95   Normal       ---
bip39->serde                                      1.0.216                        1.0.217  1.0.217  Normal       ---
blocking->futures-lite                            2.5.0                          2.6.0    2.6.0    Normal       ---
borsh->borsh-derive                               1.5.3                          1.5.5    1.5.5    Normal       ---
borsh-derive->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
borsh-derive->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
borsh-derive->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
bs58->tinyvec                                     1.8.0                          1.8.1    1.8.1    Normal       ---
bytecheck_derive->proc-macro2                     1.0.92                         1.0.93   1.0.93   Normal       ---
bytecheck_derive->quote                           1.0.37                         1.0.38   1.0.38   Normal       ---
bytesize->serde                                   1.0.216                        1.0.217  1.0.217  Normal       ---
bzip2->libc                                       0.2.168                        0.2.169  0.2.169  Normal       ---
bzip2-sys->cc                                     1.2.4                          1.2.10   1.2.10   Build        ---
bzip2-sys->libc                                   0.2.168                        0.2.169  0.2.169  Normal       ---
camino->serde                                     1.0.216                        1.0.217  1.0.217  Normal       ---
cargo-near->clap                                  4.5.23                         4.5.27   4.5.27   Normal       ---
cargo-near->env_logger                            0.11.5                         0.11.6   0.11.6   Normal       ---
cargo-near->log                                   0.4.22                         0.4.25   0.4.25   Normal       ---
cargo-near->serde_json                            1.0.133                        1.0.137  1.0.137  Normal       ---
cargo-platform->serde                             1.0.216                        1.0.217  1.0.217  Normal       ---
cargo-util->anyhow                                1.0.94                         1.0.95   1.0.95   Normal       ---
cargo-util->libc                                  0.2.168                        0.2.169  0.2.169  Normal       ---
cargo-util->log                                   0.4.22                         0.4.25   0.4.25   Normal       ---
cargo-util->tempfile                              3.14.0                         3.15.0   3.15.0   Normal       ---
cargo_metadata->semver                            1.0.24                         1.0.25   1.0.25   Normal       ---
cargo_metadata->serde                             1.0.216                        1.0.217  1.0.217  Normal       ---
cargo_metadata->serde_json                        1.0.133                        1.0.137  1.0.137  Normal       ---
cc->libc                                          0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
chrono->js-sys                                    0.3.76                         0.3.77   0.3.77   Normal       cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
chrono->serde                                     1.0.216                        1.0.217  1.0.217  Normal       ---
chrono->wasm-bindgen                              0.2.99                         0.2.100  0.2.100  Normal       cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
clap->clap_builder                                4.5.23                         4.5.27   4.5.27   Normal       ---
clap->clap_derive                                 4.5.18                         4.5.24   4.5.24   Normal       ---
clap_derive->proc-macro2                          1.0.92                         1.0.93   1.0.93   Normal       ---
clap_derive->quote                                1.0.37                         1.0.38   1.0.38   Normal       ---
clap_derive->syn                                  2.0.90                         2.0.96   2.0.96   Normal       ---
commoncrypto-sys->libc                            0.2.168                        0.2.169  0.2.169  Normal       ---
console->encode_unicode                           0.3.6                          1.0.0    1.0.0    Normal       cfg(windows)
console->lazy_static                              1.5.0                          Removed  Removed  Normal       ---
console->libc                                     0.2.168                        0.2.169  0.2.169  Normal       ---
console->unicode-width                            0.1.14                         0.2.0    0.2.0    Normal       ---
console->windows-sys                              0.52.0                         0.59.0   0.59.0   Normal       cfg(windows)
core-foundation->libc                             0.2.168                        0.2.169  0.2.169  Normal       ---
cpufeatures->libc                                 0.2.168                        0.2.169  0.2.169  Normal       aarch64-linux-android
crossterm->libc                                   0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
crypto-hash->openssl                              0.10.68                        0.10.69  0.10.69  Normal       cfg(not(any(target_os = "windows", target_os = "macos", target_os = "ios")))
csv->serde                                        1.0.216                        1.0.217  1.0.217  Normal       ---
curve25519-dalek->cpufeatures                     0.2.16                         0.2.17   0.2.17   Normal       cfg(target_arch = "x86_64")
curve25519-dalek-derive->proc-macro2              1.0.92                         1.0.93   1.0.93   Normal       ---
curve25519-dalek-derive->quote                    1.0.37                         1.0.38   1.0.38   Normal       ---
curve25519-dalek-derive->syn                      2.0.90                         2.0.96   2.0.96   Normal       ---
darling_core->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
darling_core->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
darling_core->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
darling_macro->quote                              1.0.37                         1.0.38   1.0.38   Normal       ---
darling_macro->syn                                2.0.90                         2.0.96   2.0.96   Normal       ---
deranged->serde                                   1.0.216                        1.0.217  1.0.217  Normal       ---
derivative->proc-macro2                           1.0.92                         1.0.93   1.0.93   Normal       ---
derivative->quote                                 1.0.37                         1.0.38   1.0.38   Normal       ---
derive_arbitrary->proc-macro2                     1.0.92                         1.0.93   1.0.93   Normal       ---
derive_arbitrary->quote                           1.0.37                         1.0.38   1.0.38   Normal       ---
derive_arbitrary->syn                             2.0.90                         2.0.96   2.0.96   Normal       ---
derive_more->proc-macro2                          1.0.92                         1.0.93   1.0.93   Normal       ---
derive_more->quote                                1.0.37                         1.0.38   1.0.38   Normal       ---
derive_more->syn                                  2.0.90                         2.0.96   2.0.96   Normal       ---
dirs-sys->libc                                    0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
dirs-sys-next->libc                               0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
displaydoc->proc-macro2                           1.0.92                         1.0.93   1.0.93   Normal       ---
displaydoc->quote                                 1.0.37                         1.0.38   1.0.38   Normal       ---
displaydoc->syn                                   2.0.90                         2.0.96   2.0.96   Normal       ---
elementtree->xml-rs                               0.8.24                         0.8.25   0.8.25   Normal       ---
enum-map-derive->proc-macro2                      1.0.92                         1.0.93   1.0.93   Normal       ---
enum-map-derive->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
enum-map-derive->syn                              2.0.90                         2.0.96   2.0.96   Normal       ---
enumflags2->enumflags2_derive                     0.7.10                         0.7.11   0.7.11   Normal       ---
enumflags2->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
enumflags2_derive->proc-macro2                    1.0.92                         1.0.93   1.0.93   Normal       ---
enumflags2_derive->quote                          1.0.37                         1.0.38   1.0.38   Normal       ---
enumflags2_derive->syn                            2.0.90                         2.0.96   2.0.96   Normal       ---
env_filter->log                                   0.4.22                         0.4.25   0.4.25   Normal       ---
env_logger->env_filter                            0.1.2                          0.1.3    0.1.3    Normal       ---
env_logger->log                                   0.4.22                         0.4.25   0.4.25   Normal       ---
errno->libc                                       0.2.168                        0.2.169  0.2.169  Normal       cfg(target_os = "hermit")
event-listener->pin-project-lite                  0.2.15                         0.2.16   0.2.16   Normal       ---
event-listener-strategy->event-listener           5.3.1                          5.4.0    5.4.0    Normal       ---
event-listener-strategy->pin-project-lite         0.2.15                         0.2.16   0.2.16   Normal       ---
filetime->libc                                    0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
flate2->miniz_oxide                               0.8.0                          0.8.3    0.8.3    Normal       ---
fs2->libc                                         0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
futures-lite->pin-project-lite                    0.2.15                         0.2.16   0.2.16   Normal       ---
futures-macro->proc-macro2                        1.0.92                         1.0.93   1.0.93   Normal       ---
futures-macro->quote                              1.0.37                         1.0.38   1.0.38   Normal       ---
futures-macro->syn                                2.0.90                         2.0.96   2.0.96   Normal       ---
futures-util->pin-project-lite                    0.2.15                         0.2.16   0.2.16   Normal       ---
getrandom->cfg-if                                 1.0.0                          Removed  ---      Normal       ---
getrandom->js-sys                                 0.3.76                         0.3.77   0.3.77   Normal       cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
getrandom->js-sys                                 0.3.76                         Removed  0.3.77   Normal       cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
getrandom->libc                                   0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
getrandom->libc                                   0.2.168                        Removed  0.2.169  Normal       cfg(unix)
getrandom->wasi                                   0.11.0+wasi-snapshot-preview1  Removed  ---      Normal       cfg(target_os = "wasi")
getrandom->wasm-bindgen                           0.2.99                         0.2.100  0.2.100  Normal       cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
getrandom->wasm-bindgen                           0.2.99                         Removed  0.2.100  Normal       cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
goblin->log                                       0.4.22                         0.4.25   0.4.25   Normal       ---
h2->indexmap                                      2.7.0                          2.7.1    2.7.1    Normal       ---
h2->tokio                                         1.42.0                         1.43.0   1.43.0   Normal       ---
hashbrown->ahash                                  0.7.8                          Removed  ---      Normal       ---
hashbrown->serde                                  1.0.216                        1.0.217  1.0.217  Normal       ---
hermit-abi->libc                                  0.2.168                        0.2.169  0.2.169  Normal       ---
hex->serde                                        1.0.216                        1.0.217  1.0.217  Normal       ---
home->windows-sys                                 0.52.0                         0.59.0   0.59.0   Normal       cfg(windows)
http-body->pin-project-lite                       0.2.15                         0.2.16   0.2.16   Normal       ---
http-body-util->pin-project-lite                  0.2.15                         0.2.16   0.2.16   Normal       ---
hyper->pin-project-lite                           0.2.15                         0.2.16   0.2.16   Normal       ---
hyper->tokio                                      1.42.0                         1.43.0   1.43.0   Normal       ---
hyper-rustls->hyper                               1.5.1                          1.5.2    1.5.2    Normal       ---
hyper-rustls->rustls                              0.23.20                        0.23.21  0.23.21  Normal       ---
hyper-rustls->tokio                               1.42.0                         1.43.0   1.43.0   Normal       ---
hyper-timeout->hyper                              0.14.31                        0.14.32  0.14.32  Normal       ---
hyper-timeout->pin-project-lite                   0.2.15                         0.2.16   0.2.16   Normal       ---
hyper-timeout->tokio                              1.42.0                         1.43.0   1.43.0   Normal       ---
hyper-tls->hyper                                  1.5.1                          1.5.2    1.5.2    Normal       ---
hyper-tls->native-tls                             0.2.12                         0.2.13   0.2.13   Normal       ---
hyper-tls->tokio                                  1.42.0                         1.43.0   1.43.0   Normal       ---
hyper-util->hyper                                 1.5.1                          1.5.2    1.5.2    Normal       ---
hyper-util->pin-project-lite                      0.2.15                         0.2.16   0.2.16   Normal       ---
hyper-util->tokio                                 1.42.0                         1.43.0   1.43.0   Normal       ---
iana-time-zone->js-sys                            0.3.76                         0.3.77   0.3.77   Normal       cfg(all(target_arch = "wasm32", target_os = "unknown"))
iana-time-zone->wasm-bindgen                      0.2.99                         0.2.100  0.2.100  Normal       cfg(all(target_arch = "wasm32", target_os = "unknown"))
iana-time-zone-haiku->cc                          1.2.4                          1.2.10   1.2.10   Build        ---
icu_provider_macros->proc-macro2                  1.0.92                         1.0.93   1.0.93   Normal       ---
icu_provider_macros->quote                        1.0.37                         1.0.38   1.0.38   Normal       ---
icu_provider_macros->syn                          2.0.90                         2.0.96   2.0.96   Normal       ---
indexmap->autocfg                                 1.4.0                          Removed  ---      Build        ---
indexmap->equivalent                              1.0.1                          ---      Removed  Normal       ---
indexmap->hashbrown                               0.12.3                         0.15.2   ---      Normal       ---
indexmap->hashbrown                               0.15.2                         ---      0.12.3   Normal       ---
indexmap->serde                                   1.0.216                        1.0.217  1.0.217  Normal       ---
indicatif->console                                0.15.8                         0.15.10  0.15.10  Normal       ---
inquire->bitflags                                 2.6.0                          2.8.0    2.8.0    Normal       ---
interactive-clap-derive->proc-macro2              1.0.92                         1.0.93   1.0.93   Normal       ---
interactive-clap-derive->quote                    1.0.37                         1.0.38   1.0.38   Normal       ---
io-lifetimes->libc                                0.2.168                        0.2.169  0.2.169  Normal       cfg(not(windows))
is-terminal->libc                                 0.2.168                        0.2.169  0.2.169  Normal       cfg(any(unix, target_os = "wasi"))
is-terminal->windows-sys                          0.52.0                         0.59.0   0.59.0   Normal       cfg(windows)
jobserver->libc                                   0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
js-sys->once_cell                                 1.20.2                         Removed  ---      Normal       ---
js-sys->wasm-bindgen                              0.2.99                         0.2.100  0.2.100  Normal       ---
js-sys->wasm-bindgen                              0.2.99                         Removed  0.2.100  Normal       ---
json-patch->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
json-patch->serde_json                            1.0.133                        1.0.137  1.0.137  Normal       ---
jsonptr->serde                                    1.0.216                        1.0.217  1.0.217  Normal       ---
jsonptr->serde_json                               1.0.133                        1.0.137  1.0.137  Normal       ---
keccak->cpufeatures                               0.2.16                         0.2.17   0.2.17   Normal       cfg(target_arch = "aarch64")
libredox->bitflags                                2.6.0                          2.8.0    2.8.0    Normal       ---
libredox->libc                                    0.2.168                        0.2.169  0.2.169  Normal       ---
linked-hash-map->serde                            1.0.216                        1.0.217  1.0.217  Normal       ---
linux-keyutils->bitflags                          2.6.0                          2.8.0    2.8.0    Normal       ---
linux-keyutils->libc                              0.2.168                        0.2.169  0.2.169  Normal       ---
memmap2->libc                                     0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
mio->libc                                         0.2.168                        0.2.169  0.2.169  Normal       cfg(target_os = "hermit")
mio->libc                                         0.2.168                        0.2.169  0.2.169  Normal       cfg(target_os = "wasi")
mio->log                                          0.4.22                         0.4.25   0.4.25   Normal       ---
native-tls->libc                                  0.2.168                        0.2.169  0.2.169  Normal       cfg(target_vendor = "apple")
native-tls->log                                   0.4.22                         0.4.25   0.4.25   Normal       cfg(not(any(target_os = "windows", target_vendor = "apple")))
native-tls->openssl                               0.10.68                        0.10.69  0.10.69  Normal       cfg(not(any(target_os = "windows", target_vendor = "apple")))
native-tls->openssl-probe                         0.1.5                          0.1.6    0.1.6    Normal       cfg(not(any(target_os = "windows", target_vendor = "apple")))
native-tls->security-framework-sys                2.12.1                         2.14.0   2.14.0   Normal       cfg(target_vendor = "apple")
native-tls->tempfile                              3.14.0                         3.15.0   3.15.0   Development  ---
near-abi->borsh                                   1.5.3                          1.5.5    1.5.5    Normal       ---
near-abi->semver                                  1.0.24                         1.0.25   1.0.25   Normal       ---
near-abi->serde                                   1.0.216                        1.0.217  1.0.217  Normal       ---
near-abi-client->anyhow                           1.0.94                         1.0.95   1.0.95   Normal       ---
near-abi-client->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
near-abi-client-impl->anyhow                      1.0.94                         1.0.95   1.0.95   Normal       ---
near-abi-client-impl->proc-macro2                 1.0.92                         1.0.93   1.0.93   Normal       ---
near-abi-client-impl->quote                       1.0.37                         1.0.38   1.0.38   Normal       ---
near-abi-client-impl->serde_json                  1.0.133                        1.0.137  1.0.137  Normal       ---
near-account-id->borsh                            1.5.3                          1.5.5    1.5.5    Normal       ---
near-account-id->serde                            1.0.216                        1.0.217  1.0.217  Normal       ---
near-async->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
near-async->serde_json                            1.0.133                        1.0.137  1.0.137  Normal       ---
near-async->tokio                                 1.42.0                         1.43.0   1.43.0   Normal       ---
near-async-derive->proc-macro2                    1.0.92                         1.0.93   1.0.93   Normal       ---
near-async-derive->quote                          1.0.37                         1.0.38   1.0.38   Normal       ---
near-async-derive->syn                            2.0.90                         2.0.96   2.0.96   Normal       ---
near-chain-configs->anyhow                        1.0.94                         1.0.95   1.0.95   Normal       ---
near-chain-configs->serde                         1.0.216                        1.0.217  1.0.217  Normal       ---
near-chain-configs->serde_json                    1.0.133                        1.0.137  1.0.137  Normal       ---
near-cli-rs->clap                                 4.5.23                         4.5.27   4.5.27   Normal       ---
near-cli-rs->open                                 5.3.1                          5.3.2    5.3.2    Normal       ---
near-cli-rs->openssl                              0.10.68                        0.10.69  0.10.69  Normal       ---
near-cli-rs->reqwest                              0.12.9                         0.12.12  0.12.12  Normal       ---
near-cli-rs->serde                                1.0.216                        1.0.217  1.0.217  Normal       ---
near-cli-rs->serde_json                           1.0.133                        1.0.137  1.0.137  Normal       ---
near-cli-rs->tokio                                1.42.0                         1.43.0   1.43.0   Normal       ---
near-cli-rs->tracing-indicatif                    0.3.8                          0.3.9    0.3.9    Normal       ---
near-config-utils->anyhow                         1.0.94                         1.0.95   1.0.95   Normal       ---
near-crypto->borsh                                1.5.3                          1.5.5    1.5.5    Normal       ---
near-crypto->serde                                1.0.216                        1.0.217  1.0.217  Normal       ---
near-crypto->serde_json                           1.0.133                        1.0.137  1.0.137  Normal       ---
near-gas->borsh                                   1.5.3                          1.5.5    1.5.5    Normal       ---
near-gas->serde                                   1.0.216                        1.0.217  1.0.217  Normal       ---
near-jsonrpc-client->borsh                        1.5.3                          1.5.5    1.5.5    Normal       ---
near-jsonrpc-client->log                          0.4.22                         0.4.25   0.4.25   Normal       ---
near-jsonrpc-client->reqwest                      0.12.9                         0.12.12  0.12.12  Normal       ---
near-jsonrpc-client->serde                        1.0.216                        1.0.217  1.0.217  Normal       ---
near-jsonrpc-client->serde_json                   1.0.133                        1.0.137  1.0.137  Normal       ---
near-jsonrpc-primitives->serde                    1.0.216                        1.0.217  1.0.217  Normal       ---
near-jsonrpc-primitives->serde_json               1.0.133                        1.0.137  1.0.137  Normal       ---
near-o11y->clap                                   4.5.23                         4.5.27   4.5.27   Normal       ---
near-o11y->serde                                  1.0.216                        1.0.217  1.0.217  Normal       ---
near-o11y->serde_json                             1.0.133                        1.0.137  1.0.137  Normal       ---
near-o11y->tokio                                  1.42.0                         1.43.0   1.43.0   Normal       ---
near-parameters->borsh                            1.5.3                          1.5.5    1.5.5    Normal       ---
near-parameters->serde                            1.0.216                        1.0.217  1.0.217  Normal       ---
near-performance-metrics->libc                    0.2.168                        0.2.169  0.2.169  Normal       ---
near-performance-metrics->tokio                   1.42.0                         1.43.0   1.43.0   Normal       ---
near-primitives->borsh                            1.5.3                          1.5.5    1.5.5    Normal       ---
near-primitives->serde                            1.0.216                        1.0.217  1.0.217  Normal       ---
near-primitives->serde_json                       1.0.133                        1.0.137  1.0.137  Normal       ---
near-primitives->serde_with                       3.11.0                         3.12.0   3.12.0   Normal       ---
near-primitives-core->borsh                       1.5.3                          1.5.5    1.5.5    Normal       ---
near-primitives-core->serde                       1.0.216                        1.0.217  1.0.217  Normal       ---
near-rpc-error-core->quote                        1.0.37                         1.0.38   1.0.38   Normal       ---
near-rpc-error-core->serde                        1.0.216                        1.0.217  1.0.217  Normal       ---
near-rpc-error-core->syn                          2.0.90                         2.0.96   2.0.96   Normal       ---
near-rpc-error-macro->serde                       1.0.216                        1.0.217  1.0.217  Normal       ---
near-rpc-error-macro->syn                         2.0.90                         2.0.96   2.0.96   Normal       ---
near-sandbox-utils                                0.12.0                         0.13.0   0.13.0   Normal       ---
near-sandbox-utils->anyhow                        1.0.94                         1.0.95   1.0.95   Normal       ---
near-sandbox-utils->home                          0.5.9                          0.5.11   0.5.11   Normal       ---
near-sandbox-utils->tokio                         1.42.0                         1.43.0   1.43.0   Normal       ---
near-sdk                                          5.6.0                          5.7.0    5.7.0    Normal       ---
near-sdk->borsh                                   1.5.3                          1.5.5    1.5.5    Normal       ---
near-sdk->near-sdk-macros                         5.6.0                          5.7.0    5.7.0    Normal       ---
near-sdk->serde                                   1.0.216                        1.0.217  1.0.217  Normal       ---
near-sdk->serde_json                              1.0.133                        1.0.137  1.0.137  Normal       ---
near-sdk-macros->proc-macro2                      1.0.92                         1.0.93   1.0.93   Normal       ---
near-sdk-macros->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
near-sdk-macros->serde                            1.0.216                        1.0.217  1.0.217  Normal       ---
near-sdk-macros->serde_json                       1.0.133                        1.0.137  1.0.137  Normal       ---
near-sdk-macros->syn                              2.0.90                         2.0.96   2.0.96   Normal       ---
near-socialdb-client->serde                       1.0.216                        1.0.217  1.0.217  Normal       ---
near-socialdb-client->serde_json                  1.0.133                        1.0.137  1.0.137  Normal       ---
near-time->serde                                  1.0.216                        1.0.217  1.0.217  Normal       ---
near-time->tokio                                  1.42.0                         1.43.0   1.43.0   Normal       ---
near-token->borsh                                 1.5.3                          1.5.5    1.5.5    Normal       ---
near-token->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
near-workspaces->async-trait                      0.1.83                         0.1.85   0.1.85   Normal       ---
near-workspaces->libc                             0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
near-workspaces->near-sandbox-utils               0.9.0                          0.8.0    0.8.0    Normal       ---
near-workspaces->reqwest                          0.12.9                         0.12.12  0.12.12  Normal       ---
near-workspaces->serde                            1.0.216                        1.0.217  1.0.217  Normal       ---
near-workspaces->serde_json                       1.0.133                        1.0.137  1.0.137  Normal       ---
near-workspaces->tempfile                         3.14.0                         3.15.0   3.15.0   Normal       ---
near-workspaces->tokio                            1.42.0                         1.43.0   1.43.0   Normal       ---
near_schemafy_core->serde                         1.0.216                        1.0.217  1.0.217  Normal       ---
near_schemafy_core->serde_json                    1.0.133                        1.0.137  1.0.137  Normal       ---
near_schemafy_lib->proc-macro2                    1.0.92                         1.0.93   1.0.93   Normal       ---
near_schemafy_lib->quote                          1.0.37                         1.0.38   1.0.38   Normal       ---
near_schemafy_lib->serde                          1.0.216                        1.0.217  1.0.217  Normal       ---
near_schemafy_lib->serde_derive                   1.0.216                        1.0.217  1.0.217  Normal       ---
near_schemafy_lib->serde_json                     1.0.133                        1.0.137  1.0.137  Normal       ---
nix->libc                                         0.2.168                        0.2.169  0.2.169  Normal       ---
num-rational->serde                               1.0.216                        1.0.217  1.0.217  Normal       ---
num_cpus->libc                                    0.2.168                        0.2.169  0.2.169  Normal       cfg(not(windows))
open->libc                                        0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
openssl->bitflags                                 2.6.0                          2.8.0    2.8.0    Normal       ---
openssl->libc                                     0.2.168                        0.2.169  0.2.169  Normal       ---
openssl-macros->proc-macro2                       1.0.92                         1.0.93   1.0.93   Normal       ---
openssl-macros->quote                             1.0.37                         1.0.38   1.0.38   Normal       ---
openssl-macros->syn                               2.0.90                         2.0.96   2.0.96   Normal       ---
openssl-src->cc                                   1.2.4                          1.2.10   1.2.10   Normal       ---
openssl-sys->cc                                   1.2.4                          1.2.10   1.2.10   Build        ---
openssl-sys->libc                                 0.2.168                        0.2.169  0.2.169  Normal       ---
opentelemetry->js-sys                             0.3.76                         0.3.77   0.3.77   Normal       cfg(all(target_arch = "wasm32", not(target_os = "wasi")))
opentelemetry->pin-project-lite                   0.2.15                         0.2.16   0.2.16   Normal       ---
opentelemetry-otlp->async-trait                   0.1.83                         0.1.85   0.1.85   Normal       ---
opentelemetry-otlp->tokio                         1.42.0                         1.43.0   1.43.0   Normal       ---
opentelemetry_sdk->async-trait                    0.1.83                         0.1.85   0.1.85   Normal       ---
opentelemetry_sdk->glob                           0.3.1                          0.3.2    0.3.2    Normal       ---
opentelemetry_sdk->ordered-float                  4.5.0                          4.6.0    4.6.0    Normal       ---
opentelemetry_sdk->tokio                          1.42.0                         1.43.0   1.43.0   Normal       ---
ordered-stream->pin-project-lite                  0.2.15                         0.2.16   0.2.16   Normal       ---
parking_lot_core->libc                            0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
pin-project->pin-project-internal                 1.1.7                          1.1.8    1.1.8    Normal       ---
pin-project-internal->proc-macro2                 1.0.92                         1.0.93   1.0.93   Normal       ---
pin-project-internal->quote                       1.0.37                         1.0.38   1.0.38   Normal       ---
pin-project-internal->syn                         2.0.90                         2.0.96   2.0.96   Normal       ---
polling->libc                                     0.2.168                        0.2.169  0.2.169  Normal       cfg(any(unix, target_os = "fuchsia", target_os = "vxworks"))
polling->log                                      0.4.22                         0.4.25   0.4.25   Normal       ---
polling->pin-project-lite                         0.2.15                         0.2.16   0.2.16   Normal       cfg(windows)
polling->rustix                                   0.38.42                        0.38.44  0.38.44  Normal       cfg(any(unix, target_os = "fuchsia", target_os = "vxworks"))
prettyplease->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
prettytable->is-terminal                          0.4.13                         0.4.15   0.4.15   Normal       ---
proc-macro-error->proc-macro2                     1.0.92                         1.0.93   1.0.93   Normal       ---
proc-macro-error->quote                           1.0.37                         1.0.38   1.0.38   Normal       ---
proc-macro-error-attr->proc-macro2                1.0.92                         1.0.93   1.0.93   Normal       ---
proc-macro-error-attr->quote                      1.0.37                         1.0.38   1.0.38   Normal       ---
proc-macro2->unicode-ident                        1.0.14                         1.0.15   1.0.15   Normal       ---
proc-macro2->unicode-ident                        1.0.14                         Removed  1.0.15   Normal       ---
prost-derive->anyhow                              1.0.94                         1.0.95   1.0.95   Normal       ---
prost-derive->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
prost-derive->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
prost-derive->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
ptr_meta_derive->proc-macro2                      1.0.92                         1.0.93   1.0.93   Normal       ---
ptr_meta_derive->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
quote->proc-macro2                                1.0.92                         1.0.93   1.0.93   Normal       ---
quote->proc-macro2                                1.0.92                         Removed  1.0.93   Normal       ---
rand->libc                                        0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
redox_syscall->bitflags                           2.6.0                          2.8.0    2.8.0    Normal       ---
reqwest->hyper                                    1.5.1                          1.5.2    1.5.2    Normal       cfg(not(target_arch = "wasm32"))
reqwest->hyper-rustls                             0.27.3                         0.27.5   0.27.5   Normal       cfg(not(target_arch = "wasm32"))
reqwest->ipnet                                    2.10.1                         2.11.0   2.11.0   Normal       cfg(not(target_arch = "wasm32"))
reqwest->js-sys                                   0.3.76                         0.3.77   0.3.77   Normal       cfg(target_arch = "wasm32")
reqwest->log                                      0.4.22                         0.4.25   0.4.25   Normal       cfg(not(target_arch = "wasm32"))
reqwest->native-tls                               0.2.12                         0.2.13   0.2.13   Normal       cfg(not(target_arch = "wasm32"))
reqwest->pin-project-lite                         0.2.15                         0.2.16   0.2.16   Normal       cfg(not(target_arch = "wasm32"))
reqwest->serde                                    1.0.216                        1.0.217  1.0.217  Normal       ---
reqwest->serde_json                               1.0.133                        1.0.137  1.0.137  Normal       ---
reqwest->tokio                                    1.42.0                         1.43.0   1.43.0   Normal       cfg(not(target_arch = "wasm32"))
reqwest->wasm-bindgen                             0.2.99                         0.2.100  0.2.100  Normal       cfg(target_arch = "wasm32")
reqwest->wasm-bindgen-futures                     0.4.49                         0.4.50   0.4.50   Normal       cfg(target_arch = "wasm32")
reqwest->web-sys                                  0.3.76                         0.3.77   0.3.77   Normal       cfg(target_arch = "wasm32")
ring->cc                                          1.2.4                          1.2.10   1.2.10   Build        ---
ring->libc                                        0.2.168                        0.2.169  0.2.169  Normal       cfg(all(any(target_os = "android", target_os = "linux"), any(target_arch = "aarch64", target_arch = "arm")))
rkyv->tinyvec                                     1.8.0                          1.8.1    1.8.1    Normal       ---
rkyv->uuid                                        1.11.0                         1.12.1   1.12.1   Normal       ---
rkyv_derive->proc-macro2                          1.0.92                         1.0.93   1.0.93   Normal       ---
rkyv_derive->quote                                1.0.37                         1.0.38   1.0.38   Normal       ---
rust_decimal->borsh                               1.5.3                          1.5.5    1.5.5    Normal       ---
rust_decimal->serde                               1.0.216                        1.0.217  1.0.217  Normal       ---
rust_decimal->serde_json                          1.0.133                        1.0.137  1.0.137  Normal       ---
rustc_version->semver                             1.0.24                         1.0.25   1.0.25   Normal       ---
rustix->bitflags                                  2.6.0                          2.8.0    2.8.0    Normal       ---
rustix->libc                                      0.2.168                        0.2.169  0.2.169  Development  ---
rustix->linux-raw-sys                             0.4.14                         0.4.15   0.4.15   Normal       cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_endian = "little", target_arch = "s390x"), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
rustls->log                                       0.4.22                         0.4.25   0.4.25   Normal       ---
schemars->serde                                   1.0.216                        1.0.217  1.0.217  Normal       ---
schemars->serde_json                              1.0.133                        1.0.137  1.0.137  Normal       ---
schemars_derive->proc-macro2                      1.0.92                         1.0.93   1.0.93   Normal       ---
schemars_derive->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
schemars_derive->syn                              2.0.90                         2.0.96   2.0.96   Normal       ---
scroll_derive->proc-macro2                        1.0.92                         1.0.93   1.0.93   Normal       ---
scroll_derive->quote                              1.0.37                         1.0.38   1.0.38   Normal       ---
scroll_derive->syn                                2.0.90                         2.0.96   2.0.96   Normal       ---
secp256k1-sys->cc                                 1.2.4                          1.2.10   1.2.10   Build        ---
secret-service->serde                             1.0.216                        1.0.217  1.0.217  Normal       ---
security-framework->bitflags                      2.6.0                          2.8.0    2.8.0    Normal       ---
security-framework->libc                          0.2.168                        0.2.169  0.2.169  Normal       ---
security-framework->security-framework-sys        2.12.1                         2.14.0   2.14.0   Normal       ---
security-framework-sys->libc                      0.2.168                        0.2.169  0.2.169  Normal       ---
semver->serde                                     1.0.216                        1.0.217  1.0.217  Normal       ---
serde->serde_derive                               1.0.216                        1.0.217  1.0.217  Normal       ---
serde_derive->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
serde_derive->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
serde_derive->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
serde_derive_internals->proc-macro2               1.0.92                         1.0.93   1.0.93   Normal       ---
serde_derive_internals->quote                     1.0.37                         1.0.38   1.0.38   Normal       ---
serde_derive_internals->syn                       2.0.90                         2.0.96   2.0.96   Normal       ---
serde_json                                        1.0.133                        1.0.137  1.0.137  Normal       ---
serde_json->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
serde_repr->proc-macro2                           1.0.92                         1.0.93   1.0.93   Normal       ---
serde_repr->quote                                 1.0.37                         1.0.38   1.0.38   Normal       ---
serde_repr->syn                                   2.0.90                         2.0.96   2.0.96   Normal       ---
serde_spanned->serde                              1.0.216                        1.0.217  1.0.217  Normal       ---
serde_urlencoded->serde                           1.0.216                        1.0.217  1.0.217  Normal       ---
serde_with->indexmap                              1.9.3                          2.7.1    ---      Normal       ---
serde_with->indexmap                              2.7.0                          2.7.1    1.9.3    Normal       ---
serde_with->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
serde_with->serde_derive                          1.0.216                        1.0.217  1.0.217  Normal       ---
serde_with->serde_json                            1.0.133                        1.0.137  1.0.137  Normal       ---
serde_with->serde_with_macros                     3.11.0                         3.12.0   3.12.0   Normal       ---
serde_with_macros->proc-macro2                    1.0.92                         1.0.93   1.0.93   Normal       ---
serde_with_macros->quote                          1.0.37                         1.0.38   1.0.38   Normal       ---
serde_with_macros->syn                            2.0.90                         2.0.96   2.0.96   Normal       ---
serde_yaml->indexmap                              2.7.0                          2.7.1    2.7.1    Normal       ---
serde_yaml->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
sha1->cpufeatures                                 0.2.16                         0.2.17   0.2.17   Normal       cfg(any(target_arch = "aarch64", target_arch = "x86", target_arch = "x86_64"))
sha2->cpufeatures                                 0.2.16                         0.2.17   0.2.17   Normal       cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86"))
signal-hook->libc                                 0.2.168                        0.2.169  0.2.169  Normal       ---
signal-hook-mio->libc                             0.2.168                        0.2.169  0.2.169  Normal       ---
signal-hook-registry->libc                        0.2.168                        0.2.169  0.2.169  Normal       ---
smart-default->proc-macro2                        1.0.92                         1.0.93   1.0.93   Normal       ---
smart-default->quote                              1.0.37                         1.0.38   1.0.38   Normal       ---
smart-default->syn                                2.0.90                         2.0.96   2.0.96   Normal       ---
socket2->libc                                     0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
string_cache->serde                               1.0.216                        1.0.217  1.0.217  Normal       ---
strum_macros->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
strum_macros->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
strum_macros->rustversion                         1.0.18                         1.0.19   1.0.19   Normal       ---
strum_macros->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
symbolic-debuginfo->serde                         1.0.216                        1.0.217  1.0.217  Normal       ---
symbolic-debuginfo->serde_json                    1.0.133                        1.0.137  1.0.137  Normal       ---
syn->proc-macro2                                  1.0.92                         1.0.93   1.0.93   Normal       ---
syn->proc-macro2                                  1.0.92                         Removed  1.0.93   Normal       ---
syn->quote                                        1.0.37                         1.0.38   1.0.38   Normal       ---
syn->quote                                        1.0.37                         Removed  1.0.38   Normal       ---
syn->unicode-ident                                1.0.14                         1.0.15   1.0.15   Normal       ---
syn->unicode-ident                                1.0.14                         Removed  1.0.15   Normal       ---
synstructure->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
synstructure->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
synstructure->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
system-configuration->bitflags                    2.6.0                          2.8.0    2.8.0    Normal       ---
system-configuration-sys->libc                    0.2.168                        0.2.169  0.2.169  Normal       ---
tar->libc                                         0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
tar->xattr                                        1.3.1                          1.4.0    1.4.0    Normal       cfg(unix)
tempfile->rustix                                  0.38.42                        0.38.44  0.38.44  Normal       cfg(any(unix, target_os = "wasi"))
term->rustversion                                 1.0.18                         1.0.19   1.0.19   Normal       cfg(windows)
thiserror-impl->proc-macro2                       1.0.92                         1.0.93   1.0.93   Normal       ---
thiserror-impl->quote                             1.0.37                         1.0.38   1.0.38   Normal       ---
thiserror-impl->syn                               2.0.90                         2.0.96   2.0.96   Normal       ---
time->serde                                       1.0.216                        1.0.217  1.0.217  Normal       ---
tokio                                             1.42.0                         1.43.0   1.43.0   Normal       ---
tokio->libc                                       0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
tokio->pin-project-lite                           0.2.15                         0.2.16   0.2.16   Normal       ---
tokio->tokio-macros                               2.4.0                          2.5.0    2.5.0    Normal       ---
tokio-io-timeout->pin-project-lite                0.2.15                         0.2.16   0.2.16   Normal       ---
tokio-io-timeout->tokio                           1.42.0                         1.43.0   1.43.0   Normal       ---
tokio-macros->proc-macro2                         1.0.92                         1.0.93   1.0.93   Normal       ---
tokio-macros->quote                               1.0.37                         1.0.38   1.0.38   Normal       ---
tokio-macros->syn                                 2.0.90                         2.0.96   2.0.96   Normal       ---
tokio-native-tls->native-tls                      0.2.12                         0.2.13   0.2.13   Normal       ---
tokio-native-tls->tokio                           1.42.0                         1.43.0   1.43.0   Normal       ---
tokio-retry->pin-project                          1.1.7                          1.1.8    1.1.8    Normal       ---
tokio-retry->tokio                                1.42.0                         1.43.0   1.43.0   Normal       ---
tokio-rustls->rustls                              0.23.20                        0.23.21  0.23.21  Normal       ---
tokio-rustls->tokio                               1.42.0                         1.43.0   1.43.0   Normal       ---
tokio-stream->pin-project-lite                    0.2.15                         0.2.16   0.2.16   Normal       ---
tokio-stream->tokio                               1.42.0                         1.43.0   1.43.0   Normal       ---
tokio-util->pin-project-lite                      0.2.15                         0.2.16   0.2.16   Normal       ---
tokio-util->tokio                                 1.42.0                         1.43.0   1.43.0   Normal       ---
toml->serde                                       1.0.216                        1.0.217  1.0.217  Normal       ---
toml_datetime->serde                              1.0.216                        1.0.217  1.0.217  Normal       ---
toml_edit->indexmap                               2.7.0                          2.7.1    2.7.1    Normal       ---
toml_edit->serde                                  1.0.216                        1.0.217  1.0.217  Normal       ---
toml_edit->winnow                                 0.6.20                         0.6.24   0.6.24   Normal       ---
tonic->async-trait                                0.1.83                         0.1.85   0.1.85   Normal       ---
tonic->hyper                                      0.14.31                        0.14.32  0.14.32  Normal       ---
tonic->pin-project                                1.1.7                          1.1.8    1.1.8    Normal       ---
tonic->tokio                                      1.42.0                         1.43.0   1.43.0   Normal       ---
tower->pin-project                                1.1.7                          1.1.8    1.1.8    Normal       ---
tower->pin-project-lite                           0.2.15                         0.2.16   0.2.16   Normal       ---
tower->tokio                                      1.42.0                         1.43.0   1.43.0   Normal       ---
tracing->pin-project-lite                         0.2.15                         0.2.16   0.2.16   Normal       ---
tracing-attributes->proc-macro2                   1.0.92                         1.0.93   1.0.93   Normal       ---
tracing-attributes->quote                         1.0.37                         1.0.38   1.0.38   Normal       ---
tracing-attributes->syn                           2.0.90                         2.0.96   2.0.96   Normal       ---
tracing-core->valuable                            0.1.0                          0.1.1    0.1.1    Normal       cfg(tracing_unstable)
tracing-log->log                                  0.4.22                         0.4.25   0.4.25   Normal       ---
tracing-opentelemetry->js-sys                     0.3.76                         0.3.77   0.3.77   Normal       cfg(all(target_arch = "wasm32", not(target_os = "wasi")))
uds_windows->tempfile                             3.14.0                         3.15.0   3.15.0   Normal       cfg(windows)
uint->crunchy                                     0.2.2                          0.2.3    0.2.3    Normal       ---
unicode-normalization->tinyvec                    1.8.0                          1.8.1    1.8.1    Normal       ---
ureq->log                                         0.4.22                         0.4.25   0.4.25   Normal       ---
ureq->rustls                                      0.23.20                        0.23.21  0.23.21  Normal       ---
url->serde                                        1.0.216                        1.0.217  1.0.217  Normal       ---
vt100->log                                        0.4.22                         0.4.25   0.4.25   Normal       ---
vte_generate_state_changes->proc-macro2           1.0.92                         1.0.93   1.0.93   Normal       ---
vte_generate_state_changes->quote                 1.0.37                         1.0.38   1.0.38   Normal       ---
wasm-bindgen->cfg-if                              1.0.0                          Removed  ---      Normal       ---
wasm-bindgen->once_cell                           1.20.2                         Removed  ---      Normal       ---
wasm-bindgen->wasm-bindgen-macro                  0.2.99                         0.2.100  0.2.100  Normal       ---
wasm-bindgen->wasm-bindgen-macro                  0.2.99                         Removed  0.2.100  Normal       ---
wasm-bindgen-backend->bumpalo                     3.16.0                         Removed  ---      Normal       ---
wasm-bindgen-backend->log                         0.4.22                         0.4.25   0.4.25   Normal       ---
wasm-bindgen-backend->log                         0.4.22                         Removed  0.4.25   Normal       ---
wasm-bindgen-backend->proc-macro2                 1.0.92                         1.0.93   1.0.93   Normal       ---
wasm-bindgen-backend->proc-macro2                 1.0.92                         Removed  1.0.93   Normal       ---
wasm-bindgen-backend->quote                       1.0.37                         1.0.38   1.0.38   Normal       ---
wasm-bindgen-backend->quote                       1.0.37                         Removed  1.0.38   Normal       ---
wasm-bindgen-backend->syn                         2.0.90                         2.0.96   2.0.96   Normal       ---
wasm-bindgen-backend->syn                         2.0.90                         Removed  2.0.96   Normal       ---
wasm-bindgen-backend->wasm-bindgen-shared         0.2.99                         0.2.100  0.2.100  Normal       ---
wasm-bindgen-backend->wasm-bindgen-shared         0.2.99                         Removed  0.2.100  Normal       ---
wasm-bindgen-futures->js-sys                      0.3.76                         0.3.77   0.3.77   Normal       ---
wasm-bindgen-futures->wasm-bindgen                0.2.99                         0.2.100  0.2.100  Normal       ---
wasm-bindgen-futures->web-sys                     0.3.76                         0.3.77   0.3.77   Normal       cfg(target_feature = "atomics")
wasm-bindgen-macro->quote                         1.0.37                         1.0.38   1.0.38   Normal       ---
wasm-bindgen-macro->quote                         1.0.37                         Removed  1.0.38   Normal       ---
wasm-bindgen-macro->wasm-bindgen-macro-support    0.2.99                         0.2.100  0.2.100  Normal       ---
wasm-bindgen-macro->wasm-bindgen-macro-support    0.2.99                         Removed  0.2.100  Normal       ---
wasm-bindgen-macro-support->proc-macro2           1.0.92                         1.0.93   1.0.93   Normal       ---
wasm-bindgen-macro-support->proc-macro2           1.0.92                         Removed  1.0.93   Normal       ---
wasm-bindgen-macro-support->quote                 1.0.37                         1.0.38   1.0.38   Normal       ---
wasm-bindgen-macro-support->quote                 1.0.37                         Removed  1.0.38   Normal       ---
wasm-bindgen-macro-support->syn                   2.0.90                         2.0.96   2.0.96   Normal       ---
wasm-bindgen-macro-support->syn                   2.0.90                         Removed  2.0.96   Normal       ---
wasm-bindgen-macro-support->wasm-bindgen-backend  0.2.99                         0.2.100  0.2.100  Normal       ---
wasm-bindgen-macro-support->wasm-bindgen-backend  0.2.99                         Removed  0.2.100  Normal       ---
wasm-bindgen-macro-support->wasm-bindgen-shared   0.2.99                         0.2.100  0.2.100  Normal       ---
wasm-bindgen-macro-support->wasm-bindgen-shared   0.2.99                         Removed  0.2.100  Normal       ---
wasmparser->bitflags                              2.6.0                          2.8.0    2.8.0    Normal       ---
wasmparser->indexmap                              2.7.0                          2.7.1    2.7.1    Normal       ---
wasmparser->semver                                1.0.24                         1.0.25   1.0.25   Normal       ---
wasmparser->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
web-sys->js-sys                                   0.3.76                         0.3.77   0.3.77   Normal       ---
web-sys->wasm-bindgen                             0.2.99                         0.2.100  0.2.100  Normal       ---
web-time->js-sys                                  0.3.76                         0.3.77   0.3.77   Normal       cfg(all(target_family = "wasm", target_os = "unknown"))
web-time->wasm-bindgen                            0.2.99                         0.2.100  0.2.100  Normal       cfg(all(target_family = "wasm", target_os = "unknown"))
wee_alloc->libc                                   0.2.168                        0.2.169  0.2.169  Normal       cfg(all(unix, not(target_arch = "wasm32")))
xattr->libc                                       0.2.168                        0.2.169  0.2.169  Normal       cfg(any(target_os = "freebsd", target_os = "netbsd"))
xattr->linux-raw-sys                              0.4.14                         0.4.15   0.4.15   Normal       cfg(target_os = "linux")
xattr->rustix                                     0.38.42                        0.38.44  0.38.44  Normal       ---
xdg-home->libc                                    0.2.168                        0.2.169  0.2.169  Normal       cfg(unix)
yoke->serde                                       1.0.216                        1.0.217  1.0.217  Normal       ---
yoke-derive->proc-macro2                          1.0.92                         1.0.93   1.0.93   Normal       ---
yoke-derive->quote                                1.0.37                         1.0.38   1.0.38   Normal       ---
yoke-derive->syn                                  2.0.90                         2.0.96   2.0.96   Normal       ---
zbus->async-trait                                 0.1.83                         0.1.85   0.1.85   Normal       ---
zbus->enumflags2                                  0.7.10                         0.7.11   0.7.11   Normal       ---
zbus->serde                                       1.0.216                        1.0.217  1.0.217  Normal       ---
zbus_macros->proc-macro2                          1.0.92                         1.0.93   1.0.93   Normal       ---
zbus_macros->quote                                1.0.37                         1.0.38   1.0.38   Normal       ---
zbus_names->serde                                 1.0.216                        1.0.217  1.0.217  Normal       ---
zerocopy-derive->proc-macro2                      1.0.92                         1.0.93   1.0.93   Normal       ---
zerocopy-derive->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
zerocopy-derive->syn                              2.0.90                         2.0.96   2.0.96   Normal       ---
zerofrom-derive->proc-macro2                      1.0.92                         1.0.93   1.0.93   Normal       ---
zerofrom-derive->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
zerofrom-derive->syn                              2.0.90                         2.0.96   2.0.96   Normal       ---
zerovec-derive->proc-macro2                       1.0.92                         1.0.93   1.0.93   Normal       ---
zerovec-derive->quote                             1.0.37                         1.0.38   1.0.38   Normal       ---
zerovec-derive->syn                               2.0.90                         2.0.96   2.0.96   Normal       ---
zstd-safe->libc                                   0.2.168                        0.2.169  0.2.169  Normal       ---
zstd-sys->cc                                      1.2.4                          1.2.10   1.2.10   Build        ---
zvariant->enumflags2                              0.7.10                         0.7.11   0.7.11   Normal       ---
zvariant->libc                                    0.2.168                        0.2.169  0.2.169  Normal       ---
zvariant->serde                                   1.0.216                        1.0.217  1.0.217  Normal       ---
zvariant_derive->proc-macro2                      1.0.92                         1.0.93   1.0.93   Normal       ---
zvariant_derive->quote                            1.0.37                         1.0.38   1.0.38   Normal       ---
zvariant_utils->proc-macro2                       1.0.92                         1.0.93   1.0.93   Normal       ---
zvariant_utils->quote                             1.0.37                         1.0.38   1.0.38   Normal       ---

CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/plot/Cargo.toml
Name                                              Project  Compat   Latest   Kind    Platform
----                                              -------  ------   ------   ----    --------
android_system_properties->libc                   0.2.168  0.2.169  0.2.169  Normal  ---
cc->libc                                          0.2.168  0.2.169  0.2.169  Normal  cfg(unix)
chrono->js-sys                                    0.3.76   0.3.77   0.3.77   Normal  cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
chrono->serde                                     1.0.216  1.0.217  1.0.217  Normal  ---
chrono->wasm-bindgen                              0.2.99   0.2.100  0.2.100  Normal  cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
cpufeatures->libc                                 0.2.168  0.2.169  0.2.169  Normal  aarch64-linux-android
fable_library_rust->uuid                          1.11.0   1.12.1   1.12.1   Normal  ---
futures-macro->proc-macro2                        1.0.92   1.0.93   1.0.93   Normal  ---
futures-macro->quote                              1.0.37   1.0.38   1.0.38   Normal  ---
futures-macro->syn                                2.0.90   2.0.96   2.0.96   Normal  ---
futures-util->pin-project-lite                    0.2.15   0.2.16   0.2.16   Normal  ---
getrandom->js-sys                                 0.3.76   0.3.77   0.3.77   Normal  cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
getrandom->libc                                   0.2.168  0.2.169  0.2.169  Normal  cfg(unix)
getrandom->wasm-bindgen                           0.2.99   0.2.100  0.2.100  Normal  cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
iana-time-zone->js-sys                            0.3.76   0.3.77   0.3.77   Normal  cfg(all(target_arch = "wasm32", target_os = "unknown"))
iana-time-zone->wasm-bindgen                      0.2.99   0.2.100  0.2.100  Normal  cfg(all(target_arch = "wasm32", target_os = "unknown"))
iana-time-zone-haiku->cc                          1.2.4    1.2.10   1.2.10   Build   ---
jobserver->libc                                   0.2.168  0.2.169  0.2.169  Normal  cfg(unix)
js-sys->wasm-bindgen                              0.2.99   0.2.100  0.2.100  Normal  ---
num_cpus->libc                                    0.2.168  0.2.169  0.2.169  Normal  cfg(not(windows))
plotters->wasm-bindgen                            0.2.99   0.2.100  0.2.100  Normal  cfg(all(target_arch = "wasm32", not(target_os = "wasi")))
plotters->web-sys                                 0.3.76   0.3.77   0.3.77   Normal  cfg(all(target_arch = "wasm32", not(target_os = "wasi")))
proc-macro2->unicode-ident                        1.0.14   1.0.15   1.0.15   Normal  ---
quote->proc-macro2                                1.0.92   1.0.93   1.0.93   Normal  ---
serde->serde_derive                               1.0.216  1.0.217  1.0.217  Normal  ---
serde_derive->proc-macro2                         1.0.92   1.0.93   1.0.93   Normal  ---
serde_derive->quote                               1.0.37   1.0.38   1.0.38   Normal  ---
serde_derive->syn                                 2.0.90   2.0.96   2.0.96   Normal  ---
serde_json                                        1.0.133  1.0.137  1.0.137  Normal  ---
serde_json->serde                                 1.0.216  1.0.217  1.0.217  Normal  ---
sha2->cpufeatures                                 0.2.16   0.2.17   0.2.17   Normal  cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86"))
syn->proc-macro2                                  1.0.92   1.0.93   1.0.93   Normal  ---
syn->quote                                        1.0.37   1.0.38   1.0.38   Normal  ---
syn->unicode-ident                                1.0.14   1.0.15   1.0.15   Normal  ---
wasm-bindgen->wasm-bindgen-macro                  0.2.99   0.2.100  0.2.100  Normal  ---
wasm-bindgen-backend->log                         0.4.22   0.4.25   0.4.25   Normal  ---
wasm-bindgen-backend->proc-macro2                 1.0.92   1.0.93   1.0.93   Normal  ---
wasm-bindgen-backend->quote                       1.0.37   1.0.38   1.0.38   Normal  ---
wasm-bindgen-backend->syn                         2.0.90   2.0.96   2.0.96   Normal  ---
wasm-bindgen-backend->wasm-bindgen-shared         0.2.99   0.2.100  0.2.100  Normal  ---
wasm-bindgen-macro->quote                         1.0.37   1.0.38   1.0.38   Normal  ---
wasm-bindgen-macro->wasm-bindgen-macro-support    0.2.99   0.2.100  0.2.100  Normal  ---
wasm-bindgen-macro-support->proc-macro2           1.0.92   1.0.93   1.0.93   Normal  ---
wasm-bindgen-macro-support->quote                 1.0.37   1.0.38   1.0.38   Normal  ---
wasm-bindgen-macro-support->syn                   2.0.90   2.0.96   2.0.96   Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-backend  0.2.99   0.2.100  0.2.100  Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-shared   0.2.99   0.2.100  0.2.100  Normal  ---
web-sys->js-sys                                   0.3.76   0.3.77   0.3.77   Normal  ---
web-sys->wasm-bindgen                             0.2.99   0.2.100  0.2.100  Normal  ---

CheckJson / json: /home/runner/work/polyglot/polyglot
$ npm-check-updates --target greatest
Using bun
Checking /home/runner/work/polyglot/polyglot/package.json


All dependencies match the greatest package versions :)

CheckJson / json: /home/runner/work/polyglot/polyglot/apps/ipfs
$ npm-check-updates --target greatest
Using bun
Checking /home/runner/work/polyglot/polyglot/apps/ipfs/package.json


All dependencies match the greatest package versions :)

CheckJson / json: /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension
$ npm-check-updates --target greatest
Using bun
Checking /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension/package.json


 @playwright/test    1.44.0  →  1.51.0-alpha-2025-01-27
 @types/chrome     ~0.0.268  →                 ~0.0.299

Run ncu --target greatest -u to upgrade package.json

CheckJson / json: /home/runner/work/polyglot/polyglot/apps/spiral/vscode
$ npm-check-updates --target greatest
Using bun
Checking /home/runner/work/polyglot/polyglot/apps/spiral/vscode/package.json


All dependencies match the greatest package versions :)

CheckJson / json: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/VS Code Plugin
$ npm-check-updates --target greatest
Checking /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/VS Code Plugin/package.json


 @microsoft/signalr  8.0.0  →  8.0.7
 @types/vscode       ~1.95  →  ~1.96

Run ncu --target greatest -u to upgrade package.json